KXIN
发布于 2025-07-29 / 0 阅读
0
0

MySQL有哪些存储引擎?

MySQL提供了多种的存储引擎

  • InnoDB

  • MyISAM

  • MEG_MYISAM

  • MEMORY

  • CSV

  • ARCHIVE

  • BLACKHOLE

  • PERFORMANCE_SCHEMA

  • FEDERATED

  • ...

如何选择合适的存储引擎?

提供几个选择标准,然后按照标准,选择对应的存储引擎即可,也可以根据常用引擎对比来选择你使用的存储引擎。使用哪种引擎需要根据需求灵活选择,一个数据库中多个表可以使用不用的引擎以满足各种性能和实际需求。使用合适的存储引擎,将会提高整个数据库的性能。

  1. 是否需要支持事务

  2. 对索引和缓存的支持

  3. 是否需要使用热备

  4. 崩溃恢复,能够接受崩溃

  5. 存储的限制

  6. 是否需要外键支持

请说明InnoDB和MyISAM的区别

InnoDB

MyISAM

事务

支持

不支持

存储限制

64TB

锁粒度

行锁

表锁

崩溃后的恢复

支持

不支持

外键

支持

不支持

全文检索

5.7版本后支持

支持

请说说InnoDB的4大特征?

  • 插入缓冲(insert buffer)

  • 二次写(double write)

  • 自适应哈希索引(ahi)

  • 预读(read ahead)

为什么SELECT COUNT(*) FROM table在InnoDB比MyISAM慢?

对于SELECT COUNT(*) FROM table 语句,在没有WHERE条件的情况下,InnoDB比MyISAM可能会慢很多,尤其在大表的情况下。因为,InnoDB是去实时统计结果,会全表扫描;而MyISAM内部维持了一个计数器,预存了结果,所以直接返回即可。


评论