MySQL有哪些索引方法? 在MySQL中,我们可以看到两种索引方式: B-Tree索引 Hash索引 实际场景下,我们基本仅仅使用B-Tree索引 对于Hash索引,我们了解即可,面试重点是掌握B-Tree索引的原理。 什么是B-Tree索引? B-Tree是为磁盘等外存储设备设计的一种平衡查找树
EXPLAIN显示了MySQL如何使用索引来处理SELECT语句以及连接表,可以帮助选择更好的索引和写出更优化的查询语句。 使用方法,在SELECT语句前加上EXPLAIN就可以了
应尽量避免在WHERE子句中使用!=或<>操作符,否则引擎将放弃使用索引而进行全表扫描。优化器将无法通过索引来确认将要命中的行数,因此需要搜索该表所有行。 注意,column IS NULL也是不可以使用索引的。 应尽量避免在WHERE子句中使用OR来连接条件,否则将导致引擎放弃使用索引而进行全表扫
最适合索引的列是出现在WHERE子句中的列,或连接子句中的列,而不是出现在SELECT关键字后的列。 索引列的基数越大,索引效果越好。 根据情况创建复合索引,复合索引可以提高查询效率。 因为复合索引的基数会更大。 索引基数(cardinality):索引中不重复的索引值的数量。 例如,某个数据列包含
索引,类似于书籍的目录,想找到一本书的某个特定的主题,需要先找到书的目录,定位对应的页码。 MySQL中的存储引擎使用类似的方式进行查询,先去索引中查找对应的值,然后根据匹配的索引找到对应的数据行。 索引有什么好处? 提高数据的检索速度,降低数据库IO成本:使用索引的意义就是通过缩小表中需要查询的记
MySQL提供了多种的存储引擎 InnoDB MyISAM MEG_MYISAM MEMORY CSV ARCHIVE BLACKHOLE PERFORMANCE_SCHEMA FEDERATED ... 如何选择合适