分析查詢語句是否用到了索引
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無需掃瞄任何...