《Mysql應用Mysql索引分類與優化》要點:
本文介紹了Mysql應用Mysql索引分類與優化,希望對您有用。如果有疑問,可以聯系我們。
MYSQL應用一、mysql索引的存儲分類
myisam表的數據文件和索引文件是自動分開的;innodb的數據和索引是存儲在同一個表空間里面,但可以有多個文件組成. 創建索引語法如下:
?
MYSQL應用索引的存儲類型目前只有兩種(btree和hash),具體和表的模式相關:
?
MYSQL應用mysql目前不支持函數索引,只能對列的前一部分(length)進行索引,例:
??? create index ind_test on table1(name(5)),
對于char和varchar列,使用前綴索引將大大節省空間.
MYSQL應用二、MySQL如何使用索引與mysql索引優化
索引用于快速找出在某個列中有一特定值的行.對相關列使用索引是提高SELECT操作性能的最佳途徑.
查詢要使用索引最主要的條件是查詢條件中需要使用索引關鍵字,如果是多列索引,那么只有查詢條件使用了多列關鍵字最左邊的前綴時,才可以使用索引,否則將不能使用索引.
?
下列情況下,Mysql不會使用已有索引:
1,如果mysql估計使用索引比全表掃描更慢,則不使用索引.例如:如果key_part1均勻分布在1和100之間,下列查詢中使用索引就不是很好:
??? SELECT * FROM table_name where key_part1 > 1 and key_part1 < 90
2,如果使用heap表并且where條件中不用=索引列,其他> 、<、 >=、 <=均不使用索引;
3,如果不是索引列的第一部分;
4,如果like是以%開始;
5,對where后邊條件為字符串的一定要加引號,字符串如果為數字mysql會自動轉為字符串,但是不使用索引.
MYSQL應用三、查看mysql數據庫中的索引使用情況
如果索引正在工作,Handler_read_key的值將很高,這個值代表了一個行被索引值讀的次數,很低的值表明增加索引得到的性能改善不高,因為索引并不經常使用.
Handler_read_rnd_next的值高則意味著查詢運行低效,并且應該建立索引補救.這個值的含義是在數據文件中讀下一行的哀求數.
MYSQL應用如果正進行大量的表掃描,該值較高.
通常說明表索引不正確或寫入的查詢沒有利用索引.
MYSQL應用語法:
MYSQL應用mysql索引與mysql索引優化查詢
Mysql索引優化辦法解析
深入理解MySQL索引與優化
mysql索引優化實例分享
mysql索引使用與優化
分享:Mysql索引優化的技巧
mysql性能優化之索引優化
《Mysql應用Mysql索引分類與優化》是否對您有啟發,歡迎查看更多與《Mysql應用Mysql索引分類與優化》相關教程,學精學透。維易PHP學院為您提供精彩教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/8907.html