Maison base de données tutoriel mysql MySQL引擎介绍ISAM,MyISAM,HEAP,InnoDB

MySQL引擎介绍ISAM,MyISAM,HEAP,InnoDB

Jun 07, 2016 pm 04:40 PM
heap innodb myisam

MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MySQL。在缺省情况下,MySQL支持三

MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MySQL。

在缺省情况下,MySQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。

如果技术高超,还可以使用MySQL++ API自己做一个引擎。

下面介绍几种数据库引擎:

ISAM:

ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到 数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不 支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实 时数据,通过其复制特性,MYSQL能够支持这样的备份应用程序。

MyISAM:

MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎。除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作,其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMCHK工具和用来恢复浪费空间的 MyISAMPACK工具。MYISAM强调了快速读取操作,这可能就是为什么MySQL受到了WEB开发如此青睐的主要原因:在WEB开发中你所进行的大量数据操作都是读取操作。所以,大多数虚拟主机提供商和INTERNET平台提供商只允许使用MYISAM格式。MyISAM格式的一个重要缺陷就是不能在表损坏后恢复数据。

HEAP:

HEAP允许只驻留在内存里的临时表格。驻留在内存里让HEAP要比ISAM和MYISAM都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。在数据行被删除的时候,HEAP也不会浪费大量的空间。HEAP表格在你需要使用SELECT表达式来选择和操控数据的时候非常有用。要记住,在用完表格之后就删除表格。

InnoDB:

InnoDB数据库引擎都是造就MySQL灵活性的技术的直接产品,这项技术就是MYSQL++ API。在使用MYSQL的时候,你所面对的每一个挑战几乎都源于ISAM和MyISAM数据库引擎不支持事务处理(transaction process)也不支持外来键。尽管要比ISAM和 MyISAM引擎慢很多,但是InnoDB包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。如前所述,如果你的设计需要这些特性中的一者 或者两者,那你就要被迫使用后两个引擎中的一个了。

MySQL 官方对InnoDB是这样解释的:InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。

InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读,这些特色增加了多用户部署和性能。

没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。

在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。

InnoDB是为处理巨大数据量时的最大性能设计,它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。

InnoDB存储引擎被完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。

InnoDB存储它的表&索引在一个表空间中,表空间可以包含数个文件(或原始磁盘分区)。这与MyISAM表不同,比如在MyISAM表中每个表被存在分离的文件中。

InnoDB 表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。

InnoDB默认地被包含在MySQL二进制分发中。Windows Essentials installer使InnoDB成为Windows上MySQL的默认表。

InnoDB被用来在众多需要高性能的大型数据库站点上产生。著名的Internet新闻站点Slashdot.org运行在InnoDB上。

Mytrix, Inc.在InnoDB上存储超过1TB的数据,还有一些其它站点在InnoDB上处理平均每秒800次插入/更新的

一般来说,MyISAM适合:(1)做很多count 的计算;(2)插入不频繁,查询非常频繁;(3)没有事务。InnoDB适合:(1)可靠性要求比较高,或者要求事务;(2)表更新和查询都相当的频繁,并且表锁定的机会比较大的情况。

一般情况下,MySQL会默认提供多种存储引擎,可以通过下面的查看:

(1)看你的MySQL现在已提供什么存储引擎: mysql> show engines;

(2)看你的MySQL当前默认的存储引擎: mysql> show variables like '%storage_engine%';

(3)你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎): mysql> show create table 表名;

所有的性能测试在:Micrisoft window xp sp2 , Intel(R) Pentinum(R) M processor 1.6oGHz 1G 内存的电脑上测试。

测试方法:连续提交10个query, 表记录总数:38万 , 时间单位 s

引擎类型                    MyISAM                InnoDB              性能相差

count                      0.0008357            3.0163                3609

查询主键                  0.005708              0.1574                27.57

查询非主键                  24.01                  80.37                3.348

更新主键                  0.008124            0.8183                100.7

更新非主键                0.004141            0.02625              6.338

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1662
14
Tutoriel PHP
1261
29
Tutoriel C#
1234
24
qu'est-ce que mysql innodb qu'est-ce que mysql innodb Apr 14, 2023 am 10:19 AM

InnoDB est l'un des moteurs de base de données de MySQL. C'est désormais le moteur de stockage par défaut de MySQL et l'une des normes pour les versions binaires de MySQL AB adopte un système d'autorisation à double voie, l'une est une autorisation GPL et l'autre est un logiciel propriétaire. autorisation. InnoDB est le moteur préféré pour les bases de données transactionnelles et prend en charge les tables de sécurité des transactions (ACID) ; InnoDB prend en charge les verrous au niveau des lignes, qui peuvent prendre en charge dans la plus grande mesure la concurrence. Les verrous au niveau des lignes sont implémentés par la couche moteur de stockage.

Comment MySQL voit le format de ligne InnoDB à partir du contenu binaire Comment MySQL voit le format de ligne InnoDB à partir du contenu binaire Jun 03, 2023 am 09:55 AM

InnoDB est un moteur de stockage qui stocke les données dans des tables sur disque, de sorte que nos données existeront toujours même après l'arrêt et le redémarrage. Le processus réel de traitement des données se produit en mémoire, de sorte que les données du disque doivent être chargées dans la mémoire. S'il traite une demande d'écriture ou de modification, le contenu de la mémoire doit également être actualisé sur le disque. Et nous savons que la vitesse de lecture et d'écriture sur le disque est très lente, ce qui est plusieurs ordres de grandeur différents de la lecture et de l'écriture en mémoire. Ainsi, lorsque nous voulons obtenir certains enregistrements de la table, le moteur de stockage InnoDB doit-il lire. les enregistrements du disque un par un ? La méthode adoptée par InnoDB consiste à diviser les données en plusieurs pages et à utiliser les pages comme unité de base d'interaction entre le disque et la mémoire. La taille d'une page dans InnoDB est généralement de 16.

Comment gérer l'exception mysql innodb Comment gérer l'exception mysql innodb Apr 17, 2023 pm 09:01 PM

1. Restaurez et réinstallez MySQL Afin d'éviter d'avoir à importer ces données depuis d'autres endroits, effectuez d'abord une sauvegarde du fichier de base de données de la bibliothèque actuelle (/var/lib/mysql/location). Ensuite, j'ai désinstallé le package Perconaserver5.7, réinstallé l'ancien package 5.1.71 d'origine, démarré le service mysql, et il a demandé Unknown/unsupportedtabletype:innodb et n'a pas pu démarrer normalement. 11050912:04:27InnoDB : initialisation du pool de tampons, taille = 384,0 M11050912:04:27InnoDB : terminé

Comparaison de sélection du moteur de stockage MySQL : évaluation de l'indice de performance InnoDB, MyISAM et mémoire Comparaison de sélection du moteur de stockage MySQL : évaluation de l'indice de performance InnoDB, MyISAM et mémoire Jul 26, 2023 am 11:25 AM

Comparaison de sélection du moteur de stockage MySQL : évaluation de l'indice de performance InnoDB, MyISAM et mémoire Introduction : Dans la base de données MySQL, le choix du moteur de stockage joue un rôle essentiel dans les performances du système et l'intégrité des données. MySQL fournit une variété de moteurs de stockage, les moteurs les plus couramment utilisés incluent InnoDB, MyISAM et Memory. Cet article évaluera les indicateurs de performances de ces trois moteurs de stockage et les comparera à travers des exemples de code. 1. Moteur InnoDB InnoDB est mon

Comment résoudre la lecture fantôme dans innoDB dans Mysql Comment résoudre la lecture fantôme dans innoDB dans Mysql May 27, 2023 pm 03:34 PM

1. Niveau d'isolement des transactions Mysql Ces quatre niveaux d'isolement, lorsqu'il y a plusieurs conflits de concurrence de transactions, certains problèmes de lecture sale, de lecture non répétable et de lecture fantôme peuvent survenir, et innoDB les résout en mode niveau d'isolement de lecture répétable. de la lecture fantôme, 2. Qu'est-ce que la lecture fantôme ? La lecture fantôme signifie que dans la même transaction, les résultats obtenus en interrogeant la même plage deux fois avant et après sont incohérents, comme le montre la figure. Dans la première transaction, nous exécutons une requête de plage. À l'heure actuelle, il n'y a qu'une seule donnée qui remplit les conditions. Dans la deuxième transaction, il insère une ligne de données et la soumet. Ensuite, lorsque la première transaction est à nouveau interrogée, le résultat obtenu est un de plus que le résultat de. la première requête Data, notez que les première et deuxième requêtes de la première transaction sont toutes deux identiques.

Expliquez les capacités de recherche en texte intégral InNODB. Expliquez les capacités de recherche en texte intégral InNODB. Apr 02, 2025 pm 06:09 PM

Les capacités de recherche en texte intégral d'InNODB sont très puissantes, ce qui peut considérablement améliorer l'efficacité de la requête de la base de données et la capacité de traiter de grandes quantités de données de texte. 1) INNODB implémente la recherche de texte intégral via l'indexation inversée, prenant en charge les requêtes de recherche de base et avancées. 2) Utilisez la correspondance et contre les mots clés pour rechercher, prendre en charge le mode booléen et la recherche de phrases. 3) Les méthodes d'optimisation incluent l'utilisation de la technologie de segmentation des mots, la reconstruction périodique des index et l'ajustement de la taille du cache pour améliorer les performances et la précision.

Comment utiliser les moteurs de stockage MyISAM et InnoDB pour optimiser les performances de MySQL Comment utiliser les moteurs de stockage MyISAM et InnoDB pour optimiser les performances de MySQL May 11, 2023 pm 06:51 PM

MySQL est un système de gestion de bases de données largement utilisé et différents moteurs de stockage ont des impacts différents sur les performances des bases de données. MyISAM et InnoDB sont les deux moteurs de stockage les plus couramment utilisés dans MySQL. Ils ont des caractéristiques différentes et une mauvaise utilisation peut affecter les performances de la base de données. Cet article explique comment utiliser ces deux moteurs de stockage pour optimiser les performances de MySQL. 1. Moteur de stockage MyISAM MyISAM est le moteur de stockage le plus couramment utilisé pour MySQL. Ses avantages sont une vitesse rapide et un petit espace de stockage. MonISA

Conseils et stratégies pour améliorer les performances de lecture du moteur de stockage MySQL : analyse comparative de MyISAM et InnoDB Conseils et stratégies pour améliorer les performances de lecture du moteur de stockage MySQL : analyse comparative de MyISAM et InnoDB Jul 26, 2023 am 10:01 AM

Conseils et stratégies pour améliorer les performances de lecture du moteur de stockage MySQL : Analyse comparative de MyISAM et InnoDB Introduction : MySQL est l'un des systèmes de gestion de bases de données relationnelles open source les plus couramment utilisés, principalement utilisé pour stocker et gérer de grandes quantités de données structurées. Dans les applications, les performances de lecture de la base de données sont souvent très importantes, car les opérations de lecture constituent le principal type d'opérations dans la plupart des applications. Cet article se concentrera sur la façon d'améliorer les performances de lecture du moteur de stockage MySQL, en se concentrant sur une analyse comparative de MyISAM et InnoDB, deux moteurs de stockage couramment utilisés.

See all articles