For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
索引的学习与应用是程序员在学习数据库架构开发的时候需要重点掌握的一个编程开发知识点,下面我们就通过案例分析来简单了解一下,数据库索引优缺点与创建方式分析。
索引的优点:
大大加快了数据的检索速度。
显著减少查询中分组和排序的时间。
通过创建性索引,可以保证数据库表中的某一行数据的性。
将随机I/O变为了顺序I/O(B+Tree索引是有序的,会将相邻的数据都存储在一起)。
索引的缺点:
创建和维护索引组要耗费时间,并且随着数据量的增加所耗费的时间也会增加。
索引需要占磁盘空间,除了数据表占数据空间以外,每一个索引还要占一定的物理空间。如果有大量的索引,索引文件可能比数据文件更快达到大文件尺寸。
当对表中的数据进行增加、删除和修改的时候,索引也要动态维护,这样就降低了数据的维护速度。
索引失效的情况?
以“%(表示任意0个或多个字符)”开头的LIKE语句。
OR条件中的每个列没有同时使用索引。
对于多列索引,必须满足左匹配原则/左前缀原则(左优先:多列索引col1、col2和col3,则索引生效的情形包括col1或col1,col2或col1,col2,col3)。
如果MySQL估计全表扫描比索引快,则不使用索引(比如非常小的表)。
哪些地方适合创建索引?
某列经常作为大小值。
经常被查询的字段。
经常用作表连接的字段。
经常出现在ORDERBY/GROUPBY/DISDINCT后面的字段。
创建索引需要注意的:
只应建立在小字段上,而不要对大文本或图片建立索引(一页存储的数据越多一次IO操作获取的数据越大效率越高)。
建立索引的字段应该非空,在MySQL中,含有空值的列很难进行查询优化,因为它们使得索引、索引的统计信息以及比较运算更加复杂。应该用0、一个特殊的值或者一个空串代替NULL。
选择数据密度大(值占总数的百分比很大)的字段作索引。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。