資料庫索引三之與索引有關的優化策略

2021-10-04 02:27:49 字數 1209 閱讀 5692

一、索引是什麼

索引通俗來講就相當於書的目錄,當我們根據條件查詢的時候,沒有索引,便需要全表掃瞄,資料量少還可以,一旦資料量超過百萬甚至千萬,一條查詢sql執行往往需要幾十秒甚至更多,5秒以上就已經讓人難以忍受了。提公升查詢速度的方向一是提公升硬體(記憶體、cpu、硬碟),二是在軟體上優化(加索引、優化sql;優化sql不在本文闡述範圍之內)。

能在軟體上解決的,就不在硬體上解決,畢竟硬體提公升**昂貴,價效比太低。代價小且行之有效的解決方法就是合理的加索引。索引使用得當,能使查詢速度提公升上萬倍,效果驚人。

二、索引的語法:

檢視某張表的索引:show index from 表名;

建立普通索引:alter table 表名 add index 索引名 (加索引的列)

建立聚合索引:alter table 表名 add index 索引名 (加索引的列1,加索引的列2)

刪除某張表的索引:drop index 索引名 on 表名;(在學習階段使用資料庫視覺化工具,一般直接在介面中建立索引,很少使用命令列創鍵)

三、效能測試

(1)主鍵索引

在平常的查詢中,我們可以感受到,使用主鍵為條件的查詢速度很快,正是在創鍵主鍵時已經將主鍵變成了主鍵索引。

(2)普通索引

select

*620000

未新增索引前

新增索引(province_zipcode)後

(3)聯合索引

select

*'山東省'

and city_name =

'臨沂'

未新增組合索引前

新增 province_name, city_name 聯合索引後

下一節 :資料庫索引四之mysql的explain關鍵字詳細了解索引的使用情況

資料庫索引 索引優化

二 三星索引 三 合適設計理想索引 謂詞簡單謂詞和複雜謂詞 where字句中的每個條件稱為乙個謂詞。過濾因子 描述了謂詞的選擇性,即表中滿足謂詞條件的記錄行數所佔的比例 過濾因子 ff 結果集的數量 錶行的數量 平均過濾因子 1 不同列值的數量 索引片及匹配列 乙個索引定義乙個索引片,如果where...

資料庫優化之索引

索引是對資料庫表中一列或多列的值進行排序的一種結構資料,使用索引可快速訪問資料庫表中的特定資訊。資料庫索引是建立在表的某列上的,並且儲存了這一列的所有值。同時儲存了指向表中的相應行的指標。聚簇索引 聚集索引 按照資料存放的物理位置為順序,聚簇索引能提高多行檢索的速度,乙個表只能包含乙個聚集索引。非聚...

mysql資料庫優化之索引優化

一 如何選擇合適的列建立索引 1 一般會選擇在where從句中,group by從句中,order by從句中 join on 從句中,建立索引,在特殊情況下select 從句中,所出的列,進行索引,當乙個索引包含了查詢中的所有列,那麼稱之為這樣的索引為覆蓋索引,當我們的查詢執行的頻率非常高,並且索...