• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Mysql索引的不足与注意事项

mysql 搞代码 4年前 (2022-01-09) 40次浏览 已收录 0个评论

以上的相关内容我们都在说使用Mysql索引好的方面,但是如果过多的使用Mysql索引将会带来一些弊端。所以下面就有对Mysql索引的弊端的介绍,例如它会在一定程度上会对更新表的实际速度降低。 Mysql索引的不足之处 虽然索引大大提高了查询速度,同时却会降低更

以上的相关内容我们都在说使用Mysql索引好的方面,但是如果过多的使用Mysql索引将会带来一些弊端。所以下面就有对Mysql索引的弊端的介绍,例如它会在一定程度上会对更新表的实际速度降低。

Mysql索引的不足之处

虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。

建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。

索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。

使用Mysql索引的注意事项

使用索引时,有以下一些技巧和注意事项:

索引不会包含有NULL值的列

只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL。

使用短索引

对串列进行索引,如果可能应该指定一个前缀长度。例如,如果有一个CHAR(255)的列,如果在前10个或20个字符内,多数值是惟一的,那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。

索引列排序

MySQL查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用Mysql索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。

like语句操作

一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。

不要在列上进行运算

<ol class="dp-xml"><li class="alt"><span><span>select * from users where YEAR(adddate)</span><span class="tag"><</span><span class="tag-name">2007</span><span>; </span></span></li></ol>

将在每个行上进行运算,这将导致Mysql索引失效而进行全表扫描,因此我们可以改成

<ol class="dp-xml"><li class="alt"><span><span>select * fr<b style="color:transparent">本文来源gao@!dai!ma.com搞$$代^@码网*</b>om users where adddate</span><span class="tag"><</span><span>‘2007-01-01’; </span></span></li></ol>

不使用NOT IN和操作

以上,就对其中MySQL索引类型进行了介绍。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Mysql索引的不足与注意事项

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址