程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql不使用索引特例

mysql不使用索引特例

編輯:MySQL綜合教程

mysql不使用索引特例
  mysql索引 今天發現mysql的一個奇怪的事情: 表結構:

  表索引:
  應該可以看到ver是varchar類型,並且有索引的。 搜索一條沒有的數據:

type居然是all,rows是整個表,什麼情況,沒有使用索引? 再搜索一條有的數據:
正常 !!   去除explain,上種沒有的要1秒多,下種只要0.0,說明上種確實沒有用索引!!   這是個毛線情況!我自認為對索引還是有一定功力的。翻遍手冊也沒找到答案。突發了一個靈感:
 用單引將123擴起,果斷正常了!!!   這個到底是什麼原因?我沒有找到官方的答案,但據我的經驗猜想的是: 字符串與數字去比較,會將字符串先轉為數字,這樣就可能打擾了索引   這樣又引發了另一個猜想,如果數據是數字,現搜索一個字符串會如何? 經過我的測試發現,依然會使用索引的。這樣就更加符合我之前的猜想,因為搜索條件是字符串,只是將搜索條件轉化為索引的數字,索引並沒有被打擾。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved