什么是索引
Indexes are used to find rows with specific column values quickly.
Without an index, MySQL must begin with the first row and then read
through the entire table to find the relevant rows.
简单来说,索引就是用来快速查找数据的,避免扫表遍历整个table。高效的检索数据。
数据库如何选择索引
MySQL 一张表是支持多个索引同时存在的,一条sql 同时命中多个索引,使用哪个索引?
在用户不主动选择索引的情况下,数据库的优化器会根据一系列的判断依据,选择最小的代价去执行语句。
在数据库里面,扫描行数是影响执行代价的因素之一。扫描的行数越少,意味着访问磁盘数据的次数越少,消耗的 CPU 资源越少。当然,扫描行数并不是唯一的判断标准,优化器还会结合是否使用临时表、是否排序等因素进行综合判断。