面试题总结(五)mysql

1.说说自己对于 MySQL 常见的两种存储引擎:MyISAM与InnoDB的理解

关于二者的对比与总结:
1. count运算上的区别:因为MyISAM缓存有表meta-data(行数等),因此在做COUNT(*)时对于一个结构很好
的查询是不需要消耗多少资源的。而对于InnoDB来说,则没有这种缓存。
2. 是否支持事务和崩溃后的安全恢复: MyISAM 强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型
更快,但是不提供事务支持。但是InnoDB 提供事务支持事务,外部键等高级数据库功能。 具有事务
(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID
compliant))型表。
3. 是否支持外键: MyISAM不支持,而InnoDB支持。
MyISAM更适合读密集的表,而InnoDB更适合写密集的的表。 在数据库做主从分离的情况下,经常选择MyISAM作
为主库的存储引擎。 一般来说,如果需要事务支持,并且有较高的并发读取频率(MyISAM的表锁的粒度太大,所以
当该表写并发量较高时,要等待的查询就会很多了),InnoDB是不错的选择。如果你的数据量很大(MyISAM支持压
缩特性可以减少磁盘的空间占用),而且不需要支持事务时,MyISAM是最好的选择。

 

2.数据库索引了解吗?

  • 为什么要使用索引

面试题总结(五)mysql

  • 为什么不对所有列建立索引

面试题总结(五)mysql

  • 索引是如何提高查询速度的

面试题总结(五)mysql

  • 使用索引注意事项

面试题总结(五)mysql

  • Mysql索引主要使用的两种数据结构

面试题总结(五)mysql

 

  • MyISAM 和 InnoDB实现BTree索引方式的区别

面试题总结(五)mysql

  • 覆盖索引介绍
  • 什么是覆盖索引

面试题总结(五)mysql

  • 覆盖索引使用实例

面试题总结(五)mysql

  • 使用索引的3个原则

​​​​​​​面试题总结(五)mysql

 

3.为什么索引能提高查询速度?