网站首页技术博客

【MySQL系列文章】4、索引的优点

洞天水月2021-04-25 10:18:59199人次阅读
摘要索引可以让服务器(数据库服务器)快读地定位到表的制定位置。但这并不是索引的唯一作用,到目前为止可以看到,根据创建索引的数据结构不同,索引也有一些其他的附加作用。 最常见的B-Tree索引,由于是按顺序存储数据,所以MySQL可以用作ORDER BY和GROUP BY操作。因为数据是有序的,所以B-Tree也就会将相关的列值存储在一起。最后,因为索引中存储了实际的值,所以某些查询只使用索引就能

索引可以让服务器(数据库服务器)快读地定位到表的制定位置。但这并不是索引的唯一作用,到目前为止可以看到,根据创建索引的数据结构不同,索引也有一些其他的附加作用。

最常见的B-Tree索引,由于是按顺序存储数据,所以MySQL可以用作ORDER BY和GROUP BY操作。因为数据是有序的,所以B-Tree也就会将相关的列值存储在一起。最后,因为索引中存储了实际的值,所以某些查询只使用索引就能够完成全部查询。根据此特性,总结下来索引有如下三个优点:

  1. 索引大大减少了服务器需要扫描的数据量。
  2. 索引可以帮助服务器避免排序和临时表。
  3. 索引可以将随机I/O变为顺序I/O。

 

索引是最好的解决方案吗?

做引并不总是最好的工具。总的来说,只有当索引帮助存储引擎快速查找到记录带来的好处大于其带来的额外工作时,索引才是有效的。对于非常小的表,大部分情况下简单的全表扫描更高效。对于中到大型的表,索引就非常有效。但对于特大型的表建立和使用索引的代价将随之增长。这种情况下,则需要一种技术可以直接区分出查询需要的一组数据,而不是一条记录一条记录的匹配。比如可以使用分区技术。

文章评论