
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
学习如何使用数据库技术是大多数后端编程开发程序员都在学习的一个编程开发技术,而本文我们就通过案例分析来简单了解一下,数据库索引的概念与作用分析。
索引的概念:
索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。
使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据,因此能加快数据库的查询速度。
索引就好比是一本书的目录,可以根据目录中的页码快速找到所需的内容。
索引是表中一列或者若干列值排序的方法。
建立索引的目的是加快对表中记录的查找或排序。
在有索引的情况下,数据库会先进行索引查询,然后定位到具体的数据行,
没有有索引的情况下扫描全表来定位某行的数据。
索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址,
使用索引后,是先通过索引表找到该行数据对应的物理地址然后访问相应的数据,因此能加快数据库的查询速度。
索引的作用:
设置了合适的索引之后,数据库利用各种快速定位技术,能够大大加快查询速度,这是创建所有的主要的原因。
当表很大或查询涉及到多个表时,使用索引可以成千上万倍地提高查询速度。
可以降低数据库的IO成本,并且索引还可以降低数据库的排序成本。
通过创建性索引,可以保证数据表中每一行数据的性。
可以加快表与表之间的连接。
在使用分组和排序时,可大大减少分组和排序的时间。
索引的副作用:
索引需要占用额外的磁盘空间。
对于MyISAM引擎而言,索引文件和数据文件是分离的,索引文件用于保存数据记录的地址。
而InnoDB引擎的表数据文件本身就是索引文件。
在插入和修改数据时要花费更多的时间,因为索引也要随之变动。
创建索引的原则依据:
索引随可以提升数据库查询的速度,但并不是任何情况下都适合创建索引。因为索引本身会消耗系统资源,在有索引的情况下,
数据库会先进行索引查询,然后定位到具体的数据行,如果索引使用不当,反而会增加数据库的负担。
表的主键、外键必须有索引。因为主键具有性,外键关联的是子表的主键,查询时可以快速定位。
记录数超过300行的表应该有索引。如果没有索引,需要把表遍历一遍,会严重影响数据库的性能。
经常与其他表进行连接的表,在连接字段上应该建立索引。
性太差的字段不适合建立索引。
更新太频繁地字段不适合创建索引。
经常出现在where子句中的字段,特别是大表的字段,应该建立索引。
索引应该建在选择性高的字段上。
索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。