Heim > Datenbank > MySQL-Tutorial > Hauptteil

mysql不使用索引特例_MySQL

WBOY
Freigeben: 2016-06-01 13:29:44
Original
860 Leute haben es durchsucht

bitsCN.com

mysql不使用索引特例
 

mysql索引

今天发现mysql的一个奇怪的事情:

表结构:
mysql不使用索引特例_MySQL
 

表索引:

mysql不使用索引特例_MySQL
 

应该可以看到ver是varchar类型,并且有索引的。

搜索一条没有的数据:
mysql不使用索引特例_MySQL
type居然是all,rows是整个表,什么情况,没有使用索引?

再搜索一条有的数据:

mysql不使用索引特例_MySQL
正常 !!

 

去除explain,上种没有的要1秒多,下种只要0.0,说明上种确实没有用索引!!

 

这是个毛线情况!我自认为对索引还是有一定功力的。翻遍手册也没找到答案。突发了一个灵感:

mysql不使用索引特例_MySQL
 用单引将123扩起,果断正常了!!!

 

这个到底是什么原因?我没有找到官方的答案,但据我的经验猜想的是:

字符串与数字去比较,会将字符串先转为数字,这样就可能打扰了索引

 

这样又引发了另一个猜想,如果数据是数字,现搜索一个字符串会如何?

经过我的测试发现,依然会使用索引的。这样就更加符合我之前的猜想,因为搜索条件是字符串,只是将搜索条件转化为索引的数字,索引并没有被打扰。


bitsCN.com
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!