MySql教程

Mysql 索引

本文主要是介绍Mysql 索引,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 一、索引的概念

  • 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。
  • 使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据,因此能加快数拥库的查询速度。
  • 索引就好比是一本书的目录,可以根据目录中的页码快速找到所需的内容。
  • 索引是表中一列或者若干列值排序的方法。
  • 建立索引的目的是加快对表中记录的查找或排序。

二、索引的作用

  • 设置了合适的索引之后,数据库利用各种快速定位技术,能够大大加快查询速度,这是创建索引的最主要的原因。
  • 当表很大或查询涉及到多个表时,使用索引可以成千上万倍地提高查询速度。
  • 可以降低数据库的IO成本,并且索引还可以降低数据库的排序成本。
  • 通过创建唯一性索引,可以保证数据表中每一行数据的唯一性。
  • 可以加快表与表之间的连接。
  • 在使用分组和排序时,可大大减少分组和排序的时间。
  • 建立索引在搜索和恢复数据库中的数据时能显著提高性能

索引的副作用

  • 索引需要占用额外的磁盘空间。
    • 对于MyISAM引擎而言,索引文件和数据文件是分离的,索引文件用于保存数据记录的地址。而InnoDB引擎的表数据文件本身就是索引文件。(这两个是mysql用的比较多的两种存储引擎)
  • 在插入和修改数据时要花费更多的时间,因为索引也要随之变动。
    • 如果表写入的情况较多不建议做索引,会花费更多时间
    • 如果表查找的情况较多建议做索引,可以加速查找。
这篇关于Mysql 索引的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!