14.1 索引简介
数据库中的索引是一个排好序的数据结构,实际上索引记录了添加索引的列值与数据表中每行记录之间的一一对应关系。
举个通俗易懂的例子,索引就好比是一本书的目录,如果书籍没有编排目录,那么想要找到书籍中的某个知识点时,就只能逐页查看是否有自己想要的内容,这样就会花费大量的时间。如果为书籍编排好目录,那么只需要查看书籍的目录来定位某个知识点的页码,随后直接翻阅书籍中指定页码的内容即可,极大地节省了查找书籍内容的时间。数据库中的索引也是同样的道理。
14.1.1 MySQL遍历表的方式
MySQL通常以两种方式遍历数据表中的数据,分别是顺序遍历和索引遍历。
1.顺序遍历
从数据表中的第一行数据开始,顺序扫描数据表中所有的数据,直到在数据表中找到匹配查询条件的目标数据。使用这种方式查询数据,数据量较小时无明显的性能问题。随着数据量越来越大,查询性能越来越低。当数据表中的数据达到百万级别甚至千万级别时,使用顺序遍历的方式查询数据,将会遍历数据表中的所有数据,花费的时间往往是不能容忍的。
2.索引遍历
通过遍历索引找到索引后,根据索引直接定位到数据表中的记录行。使用索引遍历的前提就是需要在数据表中建立相应的索引,查询数据时,根据列上的索引定位数据记录行,能极大地提高数据查询的性能。