什么时候使用 MyISAM 和 InnoDB?

2023-05-24数据库问题
2

本文介绍了什么时候使用 MyISAM 和 InnoDB?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

限时送ChatGPT账号..

MyISAM 的设计理念是,您的数据库被查询的次数远远超过其更新次数,因此它执行非常快速的读取操作.如果您的读写(插入|更新)比率小于 15%,最好使用 MyISAM.

MyISAM is designed with the idea that your database is queried far more than its updated and as a result it performs very fast read operations. If your read to write(insert|update) ratio is less than 15% its better to use MyISAM.

InnoDB 使用行级锁定,具有提交、回滚和崩溃恢复功能来保护用户数据.支持事务和容错

InnoDB uses row level locking, has commit, rollback, and crash-recovery capabilities to protect user data. It supports transaction and fault tolerance

MyISAM 和 InnobDB 之间的上述差异是否正确?请指导MYISAM和InnobDB是否有任何其他限制.我什么时候应该使用 MyiSAM 或 Innodb? 谢谢!

above differences is correct between MyISAM and InnobDB? please guide if any other limitations are there for MYISAM and InnobDB. when should i use MyiSAM or when Innodb? Thank you!

推荐答案

阅读存储引擎.

MyISAM:

MySQL 中的 MyISAM 存储引擎.

The MyISAM storage engine in MySQL.

  • 设计和创建更简单,因此更适合初学者.不用担心表之间的外部关系.
  • 由于结构更简单,因此总体上比 InnoDB 快,因此服务器资源的成本要低得多.-- 大多数情况下不再正确.
  • 全文索引.-- InnoDB 现在有了
  • 特别适用于读取密集型(选择)表.-- 大多数情况下不再正确.
  • 磁盘占用空间比 InnoDB 少 2 到 3 倍.-- 从 5.7 版开始,这可能是 MyISAM 唯一真正的优势.

InnoDB:

MySQL 中的 InnoDB 存储引擎.

The InnoDB storage engine in MySQL.

  • 支持事务(为您提供对 ACID 属性的支持).
  • 行级锁定.与例如 MyISAM.
  • 外键约束.让你让数据库保证数据库状态的完整性,以及表之间的关系.
  • InnoDB 比 MyISAM 更能抵抗表损坏.
  • 支持数据和索引的大型缓冲池.MyISAM 密钥缓冲区仅用于索引.
  • MyISAM 停滞不前;所有未来的增强都将在 InnoDB 中.随着 8.0 版的推出,这一点变得非常清楚.

MyISAM 限制:

  • 没有外键和级联删除/更新
  • 没有事务完整性(ACID 合规性)
  • 没有回滚能力
  • 4,284,867,296 行限制 (2^32) -- 这是旧的默认.可配置的限制(对于许多版本)为 2**56 字节.
  • 每个表最多 64 个索引
  • No foreign keys and cascading deletes/updates
  • No transactional integrity (ACID compliance)
  • No rollback abilities
  • 4,284,867,296 row limit (2^32) -- This is old default. The configurable limit (for many versions) has been 2**56 bytes.
  • Maximum of 64 indexes per table

InnoDB 限制:

  • 没有全文索引(低于 5.6 mysql 版本)
  • 无法快速压缩,只读(5.5.14 引入 ROW_FORMAT=COMPRESSED)
  • 您无法修复 InnoDB 表

如需简要了解,请阅读以下链接:

  1. MySQL 引擎:InnoDB 与 MyISAM – 优点和缺点
  2. MySQL 引擎:MyISAM 与 InnoDB
  3. 主要区别是什么InnoDB 和 MyISAM 之间?
  4. MyISAM 与 InnoDB
  5. MyISAM 和 InnoDB 有什么区别?
  6. MySql:MyISAM 与 Inno DB!

这篇关于什么时候使用 MyISAM 和 InnoDB?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

Mysql目录里的ibtmp1文件过大造成磁盘占满的解决办法
ibtmp1是非压缩的innodb临时表的独立表空间,通过innodb_temp_data_file_path参数指定文件的路径,文件名和大小,默认配置为ibtmp1:12M:autoextend,也就是说在文件系统磁盘足够的情况下,这个文件大小是可以无限增长的。 为了避免ibtmp1文件无止境的暴涨导致...
2025-01-02 数据库问题
151

SQL 子句“GROUP BY 1"是什么意思?意思是?
What does SQL clause quot;GROUP BY 1quot; mean?(SQL 子句“GROUP BY 1是什么意思?意思是?)...
2024-04-16 数据库问题
62

MySQL groupwise MAX() 返回意外结果
MySQL groupwise MAX() returns unexpected results(MySQL groupwise MAX() 返回意外结果)...
2024-04-16 数据库问题
13

MySQL SELECT 按组最频繁
MySQL SELECT most frequent by group(MySQL SELECT 按组最频繁)...
2024-04-16 数据库问题
16

为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同
Why Mysql#39;s Group By and Oracle#39;s Group by behaviours are different(为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同)...
2024-04-16 数据库问题
13

MySQL GROUP BY DateTime +/- 3 秒
MySQL GROUP BY DateTime +/- 3 seconds(MySQL GROUP BY DateTime +/- 3 秒)...
2024-04-16 数据库问题
14