MYSQL索引無(wú)效和索引有效的詳細(xì)介紹_MySQL教程
推薦:KB967723補(bǔ)丁造成的MYSQL在Win2003上頻繁連接不上有人可能會(huì)問,為什么9號(hào)出現(xiàn)的補(bǔ)丁,到現(xiàn)在才發(fā)現(xiàn)問題?大家都知道,服務(wù)器不是每天都重啟的,有的服務(wù)器可能一個(gè)月或者一年半載重啟一次,有的可能在9月9日以后重啟過(guò)服務(wù)器,所以補(bǔ)丁生效了(我個(gè)人這么認(rèn)為)。 癥狀: Can't connect to MySQL server on localhost' (
1、WHERE字句的查詢條件里有不等于號(hào)(WHERE column!=...),MYSQL將無(wú)法使用索引2、類似地,如果WHERE字句的查詢條件里使用了函數(shù)(如:WHERE DAY(column)=...),MYSQL將無(wú)法使用索引
3、在JOIN操作中(需要從多個(gè)數(shù)據(jù)表提取數(shù)據(jù)時(shí)),MYSQL只有在主鍵和外鍵的數(shù)據(jù)類型相同時(shí)才能使用索引,否則即使建立了
索引也不會(huì)使用
4、如果WHERE子句的查詢條件里使用了比較操作符LIKE和REGEXP,MYSQL只有在搜索模板的第一個(gè)字符不是通配符的情況下才能
使用索引。比如說(shuō),如果查詢條件是LIKE 'abc%',MYSQL將使用索引;如果條件是LIKE '%abc',MYSQL將不使用索引。
5、在ORDER BY操作中,MYSQL只有在排序條件不是一個(gè)查詢條件表達(dá)式的情況下才使用索引。盡管如此,在涉及多個(gè)數(shù)據(jù)表的查
詢里,即使有索引可用,那些索引在加快ORDER BY操作方面也沒什么作用。
6、如果某個(gè)數(shù)據(jù)列里包含著許多重復(fù)的值,就算為它建立了索引也不會(huì)有很好的效果。比如說(shuō),如果某個(gè)數(shù)據(jù)列里包含了凈是
些諸如“0/1”或“Y/N”等值,就沒有必要為它創(chuàng)建一個(gè)索引。
7、索引有用的情況下就太多了。基本只要建立了索引,除了上面提到的索引不會(huì)使用的情況下之外,其他情況只要是使用在
WHERE條件里,ORDER BY 字段,聯(lián)表字段,一般都是有效的。 建立索引要的就是有效果。 不然還用它干嗎? 如果不能確定在
某個(gè)字段上建立的索引是否有效果,只要實(shí)際進(jìn)行測(cè)試下比較下執(zhí)行時(shí)間就知道。
分享:MySQL前綴索引導(dǎo)致的慢查詢分析總結(jié)前綴索引,并不是一個(gè)萬(wàn)能藥,他的確可以幫助我們對(duì)一個(gè)寫過(guò)長(zhǎng)的字段上建立索引。但也會(huì)導(dǎo)致排序(order by ,group by)查詢上都是無(wú)法使用前綴索引的
相關(guān)MySQL教程:
- MSSQL清空日志刪除日志文件
- 關(guān)于數(shù)據(jù)庫(kù)中保留小數(shù)位的問題
- 解析mysql與Oracle update的區(qū)別
- mysql 導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù)以及函數(shù)、存儲(chǔ)過(guò)程的介紹
- MySQL——修改root密碼的4種方法(以windows為例)
- 解決MYSQL出現(xiàn)Can''t create/write to file ''#sql_5c0_0.MYD''的問題
- 深入理解SQL的四種連接-左外連接、右外連接、內(nèi)連接、全連接
- 解析:內(nèi)聯(lián),左外聯(lián),右外聯(lián),全連接,交叉連接的區(qū)別
- mysql出現(xiàn)“Incorrect key file for table”處理方法
- mysql重裝后出現(xiàn)亂碼設(shè)置為utf8可解決
- 淺析一個(gè)MYSQL語(yǔ)法(在查詢中使用count)的兼容性問題
- 解析MySQL中INSERT INTO SELECT的使用
MySQL教程Rss訂閱編程教程搜索
MySQL教程推薦
- MYSQL索引無(wú)效和索引有效的詳細(xì)介紹
- 關(guān)于Mysql查詢帶單引號(hào)及插入帶單引號(hào)字符串問題
- jdbc調(diào)用mysql存儲(chǔ)過(guò)程實(shí)現(xiàn)代碼
- MySQL筆記之函數(shù)查詢的使用
- MySQL筆記之?dāng)?shù)據(jù)類型詳解
- 擁有5星評(píng)級(jí)數(shù)據(jù)庫(kù)表結(jié)構(gòu) 如何才能更高效的使用?
- 關(guān)于MySQL數(shù)據(jù)遷移--data目錄直接替換注意事項(xiàng)的詳解
- mysql語(yǔ)句:SET NAMES UTF8
- 解決bash: mysql: command not found 的方法
- 使用java處理字符串公式運(yùn)算的方法
猜你也喜歡看這些
- sqlserver2005自動(dòng)創(chuàng)建數(shù)據(jù)表和自動(dòng)添加某個(gè)字段索引
- 詳解SQL Server數(shù)據(jù)體系和應(yīng)用程序邏輯
- 用TableDiff產(chǎn)生SQL Server同步腳本
- 詳解數(shù)據(jù)庫(kù)導(dǎo)出成excel的sql語(yǔ)句
- 怎樣用壓縮技術(shù)給SQL Server備份文件瘦身
- 數(shù)據(jù)庫(kù)中兩張表之間的數(shù)據(jù)同步增加、刪除與更新實(shí)現(xiàn)思路
- 詳解優(yōu)化SQL Server數(shù)據(jù)庫(kù)的方法
- 詳解MSSQL的安全設(shè)置問題
- 三個(gè)影響SQL Server性能的關(guān)鍵點(diǎn)
- 刪除數(shù)據(jù)庫(kù)中重復(fù)數(shù)據(jù)的幾個(gè)方法
- 相關(guān)鏈接:
- 教程說(shuō)明:
MySQL教程-MYSQL索引無(wú)效和索引有效的詳細(xì)介紹
。