当前位置:网站首页>Moteur de stockage mysql23
Moteur de stockage mysql23
2022-07-06 10:33:00 【Protégez - nous, Yao.】
Un.. Voir le moteur de stockage
- VoirmysqlQuels moteurs de stockage sont disponibles:
show engines;
show engines \G;
2.. Définir le moteur de stockage par défaut du système
- Voir le moteur de stockage par défaut:
show variables like '%storage_engine%';
#Ou
SELECT @@default_storage_engine;
- Modifier le moteur de stockage par défaut
Si le moteur de stockage de la table n'est pas explicitement spécifié dans l'instruction créer la table , Il sera utilisé par défaut InnoDB Moteur de stockage comme table. Si nous voulons changer le moteur de stockage par défaut pour les tables , Vous pouvez écrire la ligne de commande pour démarrer le serveur .
SET DEFAULT_STORAGE_ENGINE=MyISAM;
Ou modifier my.cnf Documentation:
default-storage-engine=MyISAM
# Redémarrer le Service
systemctl restart mysqld.service
Trois. Définir le moteur de stockage de la table
Le moteur de stockage est responsable de l'extraction et de l'écriture des données dans les tableaux ,On peut faire ça pour Différents paramètres de table différents moteurs de stockage ,Cela signifie que différentes tables peuvent avoir des structures de stockage physiques différentes,Différentes méthodes d'extraction et d'écriture.
3.1. Spécifiez le moteur de stockage lors de la création de la table
Aucune de nos déclarations précédentes qui ont créé la table n'a spécifié le moteur de stockage de la table , Le moteur de stockage par défaut sera utilisé InnoDB . Si nous voulons spécifier explicitement le moteur de stockage de la table , Ça pourrait être écrit :
CREATE TABLE Nom du tableau(
Déclaration de création de table;
) ENGINE = Nom du moteur de stockage;
3.2. Modifier le moteur de stockage de la table
Si la table a été construite , Nous pouvons également utiliser cette instruction ci - dessous pour modifier le moteur de stockage de la table :
ALTER TABLE Nom du tableau ENGINE = Nom du moteur de stockage;
create table engine_demo_table(
c1 int primary key,
c2 varchar(25));
show create table engine_demo_table;
alter table engin_demo_table engine=MYISAM;
show create table engine_demo_table;
Quatre. Introduction au moteur
4.1. InnoDB Moteur:Moteur de stockage des transactions avec prise en charge des clés étrangères
- MySQLDe3.23.34a Commencez par inclure InnoDBMoteur de stockage. Supérieur ou égal à5.5Après,Par défautInnoDBMoteur .
- InnoDB- Oui.MySQLDe Moteur transactionnel par défaut ,Il est conçu pour faire face à une grande quantité de court terme(short-lived)Services. Pour s'assurer que la transaction est entièrement engagée (Commit)Et rollback(Rollback).
- En plus des ajouts et des requêtes,Des mises à jour sont également nécessaires、Supprimer l'action,Alors,Priorité à choisirInnoDBMoteur de stockage.
- .À moins qu'il n'y ait une raison très particulière d'utiliser un autre moteur de stockage,Sinon, la priorité devrait être accordée àInnoDBMoteur.
- Structure du fichier de données:
- Nom du tableau.frm Structure de la table de stockage(MySQL8.0Heure,Fusionner dans le nom de la table.ibdMoyenne).
- Nom du tableau.ibd Stockage des données et des index.
- InnoDB- Oui. Conçu pour une performance maximale avec une grande quantité de données .
- Dans les versions précédentes,Données du dictionnaire dans un fichier de métadonnées、Tableaux non transactionnels, etc. pour le stockage.Ces fichiers de métadonnées ont été supprimés.Par exemple,: .frm , .par , .trn , .isl , .db.opt Tout le monde attendMySQL8.0Il n'existe plus.
- ComparerMyISAMMoteur de stockage pour, InnoDBL'efficacité du traitement de l'écriture est plus faible ,Et prend plus d'espace disque pour enregistrer les données et les index.
- MyISAMIndex de cache seulement,Ne pas mettre en cache les données réelles;InnoDBMettre en cache non seulement les index, mais aussi les données réelles, Exigences élevées en matière de mémoire ,Et la taille de la mémoire a un impact décisif sur les performances.
4.2. MyISAM Moteur:Principaux moteurs de stockage non transactionnels
- MyISAMOffre un grand nombre de fonctionnalités,Inclure l'index plein texte、Compression、Fonctions spatiales(GIS)Attendez.,Mais...MyISAM Transaction non prise en charge、Verrouillage des rangées、Clé étrangère , Il y a un défaut indiscutable Impossible de récupérer en toute sécurité après un crash .
- 5.5Moteur de stockage par défaut précédent.
- Les avantages sont accessibles Vite! ,Aucune exigence d'intégrité transactionnelle ouSELECT、INSERTApplication principale.
- Il existe un stockage constant supplémentaire pour les statistiques de données.Donc count(*) Très efficace dans la recherche de.
- Structure du fichier de données:
- Nom du tableau.frm Structure de la table de stockage.
- Nom du tableau.MYD Stockage des données (MYData).
- Nom du tableau.MYI Index de stockage (MYIndex).
- Scénario d'application:Applications en lecture seule ou entreprises axées sur la lecture.
4.3. Archive Moteur:Pour l'archivage des données
- Le tableau suivant montreARCHIVE Fonctions du moteur de stockage
Caractéristiques | Soutien |
---|---|
BIndex des arbres | Non pris en charge |
Sauvegarde/Récupération ponctuelle ( Implémenter sur le serveur ,Pas dans un moteur de stockage) | Soutien |
Prise en charge des bases de données groupées | Non pris en charge |
Index groupé | Non pris en charge |
Données compressées | Soutien |
Cache de données | Non pris en charge |
Chiffrer les données( La fonction de chiffrement est implémentée dans le serveur ) | Soutien |
Prise en charge des clés étrangères | Non pris en charge |
Index de recherche en texte intégral | Non pris en charge |
Prise en charge des types de données géospatiales | Soutien |
Prise en charge des index géospatiaux | Non pris en charge |
Index de hachage | Non pris en charge |
Cache d'index | Non pris en charge |
Granulométrie de verrouillage | Verrouillage des rangées |
MVCC | Non pris en charge |
Limites de stockage | Il n'y a pas de limite |
Commerce | Non pris en charge |
Mise à jour des statistiques du dictionnaire de données | Soutien |
4.4. Blackhole Moteur:Jeter l'écriture,L'opération de lecture renvoie un contenu vide
4.5. CSV Moteur:Lors du stockage des données,Séparer les éléments de données par des virgules
Les cas d'utilisation sont les suivants
create table testcsv (
i int not null,
c char(10) not null) engine=CSV;
INSERT INTO testcsv VALUES(1,'record one'),(2,'record two');
select * from testcsv;
cd /var/lib/mysql
cd MYSQLTEST/
4.6. Memory Moteur:Table en mémoire
Généralités:
Memory Le support logique utilisé est Mémoire , Réponse rapide ,Mais quandmysqld Quand le démon s'écrase Les données seront perdues .En plus, Les données devant être stockées sont dans un format dont la longueur des données est constante ,Par exemple,,BlobEtText Données de type non disponibles ( Longueur non fixée ).
Principales caractéristiques:
- MemoryEn même temps Prise en charge du hachage(HASH)Index Et B+Index des arbres .
- MemoryLe tableau est au moins plusMyISAM Table Un ordre de grandeur. .
- MEMORY La taille du tableau est limitée De. La taille du tableau dépend principalement de deux paramètres ,Respectivement. max_rows Etmax_heap_table_size .Parmi eux,max_rowsVous pouvez spécifier;max_heap_table_sizeLa taille par défaut est16MB, Peut être agrandi au besoin .
- Les fichiers de données sont stockés séparément des fichiers index .
- Inconvénients: Ses données sont facilement perdues ,Cycle de vie court. Sur la base de ce défaut ,SélectionnerMEMORY Attention particulière lors du stockage du moteur .
UtiliserMemory Scénario du moteur de stockage : - Les données cibles sont relativement petites ,Et très Accès fréquent ,Stocker les données en mémoire, Si trop de données peuvent causer Débordement de mémoire .Vous pouvez passer par les paramètres max_heap_table_size ContrôleMemoryTaille du tableau,RestrictionsMemory Taille maximale du tableau .
- Si Les données sont provisoires ,Et Doit être disponible immédiatement Je l'ai., Alors on peut le mettre en mémoire .
- Stocké dansMemory Les données du tableau si soudainement Ça n'a pas beaucoup d'importance de perdre .
4.7. Federated Moteur:Accès aux tables distantes
FederatedLe moteur est d'accéder à d'autresMySQLUn serveur Agents , Bien que le moteur semble offrir un bon Flexibilité entre serveurs ,Mais ça pose souvent des problèmes,Donc, La valeur par défaut est désactivée .
4.8. MergeMoteur:Gérer plusieursMyISAMEnsemble de tableaux composés de tableaux
4.9.NDBMoteur:MySQLMoteur de stockage dédié au cluster
Aussi appelé NDB Cluster Moteur de stockage,Principalement utilisé pour MySQL Cluster Grappe distribuée Environnement,Similaire à Oracle De RAC Cluster.
4.10. Comparaison des moteurs
MySQLMême base de données, Différentes tables peuvent choisir différents moteurs de stockage . Le tableau suivant compare les moteurs de stockage communs .
边栏推荐
- 百度百科数据爬取及内容分类识别
- MySQL34-其他数据库日志
- Advantages and disadvantages of evaluation methods
- MySQL实战优化高手10 生产经验:如何为数据库的监控系统部署可视化报表系统?
- MySQL combat optimization expert 03 uses a data update process to preliminarily understand the architecture design of InnoDB storage engine
- ZABBIX introduction and installation
- MySQL ERROR 1040: Too many connections
- MySQL combat optimization expert 06 production experience: how does the production environment database of Internet companies conduct performance testing?
- MySQL实战优化高手03 用一次数据更新流程,初步了解InnoDB存储引擎的架构设计
- MySQL26-性能分析工具的使用
猜你喜欢
数据库中间件_Mycat总结
MySQL 29 other database tuning strategies
MySQL的存储引擎
If someone asks you about the consistency of database cache, send this article directly to him
MySQL30-事务基础知识
Download and installation of QT Creator
[C language] deeply analyze the underlying principle of data storage
MySQL实战优化高手12 Buffer Pool这个内存数据结构到底长个什么样子?
Not registered via @EnableConfigurationProperties, marked(@ConfigurationProperties的使用)
[Julia] exit notes - Serial
随机推荐
MySQL25-索引的创建与设计原则
MySQL combat optimization expert 02 in order to execute SQL statements, do you know what kind of architectural design MySQL uses?
Jar runs with error no main manifest attribute
软件测试工程师发展规划路线
MySQL storage engine
17 medical registration system_ [wechat Payment]
MySQL實戰優化高手04 借著更新語句在InnoDB存儲引擎中的執行流程,聊聊binlog是什麼?
基于Pytorch肺部感染识别案例(采用ResNet网络结构)
MySQL transaction log
[after reading the series of must know] one of how to realize app automation without programming (preparation)
A necessary soft skill for Software Test Engineers: structured thinking
Texttext data enhancement method data argument
Notes of Dr. Carolyn ROS é's social networking speech
MySQL实战优化高手07 生产经验:如何对生产环境中的数据库进行360度无死角压测?
MySQL实战优化高手09 生产经验:如何为生产环境中的数据库部署监控系统?
Implement context manager through with
Use xtrabackup for MySQL database physical backup
如何搭建接口自动化测试框架?
MySQL实战优化高手10 生产经验:如何为数据库的监控系统部署可视化报表系统?
Mysql27 index optimization and query optimization