mysql資料庫之索引和分析索引

2022-03-05 02:58:20 字數 1310 閱讀 2497

分析查詢語句是否用到了索引

explain sql語句

\g//根據返回的資訊,我們可知,該

sql語句是否使用索引,從多少記錄中取出

,可以看到排序的方式

主要是看

key 實際用到的索引

rows 從多少行中找出資料

37萬條的資料

不加索引的情況下 查詢要2秒多

具體我們來分析這個sql語句 看看他是從多少行資料中找到這些資料的

檢索了32w條資料才找到這些資料 

下面是加上索引以後

加了普通索引以後只花了0.173s

通過分析發現用了我剛剛建立的索引   並在161行資料中找到了 資料

索引的利弊

在加快查詢速度的同時 占用的磁碟空間也更大了 (用myisam引擎的話 會有乙個檔案專門放索引  如果乙個比較大的表給乙個字段加上索引 那麼這個檔案會變的非常大 ) 

當在修改資料時 增加資料時 寫入資料的同時也會寫入索引增加io密集化

如同樣大小的表  乙個表打上了5個索引  乙個表只有乙個主鍵索引  我們來對比下他們新增一條資料所用的時間

1 有5個普通索引的表 新增一套資料用了0.55秒

2沒有普通索引只有乙個主鍵索引的表 只用了不到0.1秒

在此宣告2張表除了索引不一樣  資料大小 資料結構 都是一樣的

相差7-8倍的寫入效率  如果在乙個精彩寫入和變動的表中 這是多麼大的差距 所以不要濫用索引(在此引出下一章內容 如何設計表是更利於設定索引 在設定最少的索引的情況下如何最大的利用)

l 在什麼列上新增索引比較合適

① 在經常查詢的列上加索引.

② 列的資料,內容就只有少數幾個值,

不太適合加索引

.③ 內容頻繁變化,不合適加索引

mysql資料庫索引名 Mysql資料庫索引簡介

1.什麼是索引?資料庫索引是表中的乙個特殊的資料結構,存放的記錄的快速檢索的值,也稱為目錄,被儲存在乙個地方,所以索引是乙個存在的檔案,並不是儲存在記憶體中 索引的存在是為了在查詢時,可以直接通過查詢索引找到那一條記錄所在的位置,而不是逐一的去檢索,大大的提高的查詢的效率 那麼是不是每一列都建立乙個...

MySQL資料庫之索引

索引是一種特殊的檔案 innodb資料表上的索引是表空間的乙個組成部分 它們包含著對資料表裡所有記錄的引用指標。更通俗的說,資料庫索引好比是一本書前面的目錄,能加快資料庫的查詢速度。基本的索引型別,值可以為空,沒有唯一性的限制。alter table table name add index 欄位名...

Mysql資料庫的索引分析和優化

一 什麼是索引?索引用來快速地尋找那些具有特定值的記錄,所有mysql索引都以b 樹的形式儲存。如果沒有索引,執行查詢時mysql必須從第乙個記錄開始掃瞄整個表的所有記錄,直至找到符合要求的記錄。表裡面的記錄數量越多,這個操作的代價就越高。如果作為搜尋條件的列上已經建立了索引,mysql無需掃瞄任何...