|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用索引我们在SQL中是常常用到的,利用索引能够疾速会见到数据库中的信息,是我们优化SQL查询速率最经常使用也是最无效的办法。
但我们创立了索引后,是否是一切Select语句城市用到索引呢?谜底是NO,欠好的SQL语句的写法常常会使SQL引擎没法利用索引,从而得到了查询速率上的上风。
上面列出没法利用索引的几种情形,以供人人参考:
(1)对索引列利用了函数或盘算
假设表table1的索引列是id,但以下语句会使索引有效
select*fromtable1wheredbo.fn_fun(id)=xxx
(2)对索引列利用了Like‘%X’或Like‘%X%’
援用下面的表,以下语句也会使索引有效
select*fromtable1whereidlike%xx%
(3)在组合索引的第1列不是利用最多的列
(4)在where子句中利用了In(子查询)
以下语句会使索引有效
select*fromtable1whereidin(selectidfromtable2)
(5)数据范例转换将招致不克不及使用索引
以下语句会使索引有效
select*fromtable1wherecast(idasvarchar(50))=xxx
(6)负向对照将招致不克不及使用索引
以下语句会使索引有效
select*fromtable1wherexxx=id
以上为小编的团体履历,但愿能给人人带来匡助。由MySQL用来存储数据的文件格式以已经被广泛地测试过,但是总是有外部情况可以导致数据库表被破坏: |
|