mysql 最佳化(4)索引覆蓋和最優索引
索引覆蓋** 很重要的 一個概念 就是在索引上查找! ! !
如果查詢的列恰好是索引的一部分,那麼查詢只需要在索引文件上進行,不需要回行到磁碟再找資料.
這種查詢速度非常快,稱為」索引覆蓋」
非聚促索引索引檔案對應了資料要回行浪費掉了時間
索引和資料差異
索引是高效組織起來的樹, 節點,查找樹葉結構較優於資料
索引可以匯入記憶體中進行查詢
索引本身資料結構簡單再放入記憶體很快很快
。 。 。 。 。 。 。 。 。結果一回行 就滿了。 。 。我擦。 。 。
所以呢如果建立兩個索引index( uid , aid)
如果在索引樹上已經覆蓋了你想要的數據如select uid from msg where aid = 1
索引已經覆蓋了想要查的則直接在記憶體中的索引取出來速度效率都非常快自然不用回行查找
最優索引:
查詢頻繁,區分度高,長度小
盡量覆蓋常用字段, ------》索引覆蓋
左前綴不易區分逆轉url 把內容到過來;左前綴區分度大
偽哈希crc32() 函數來唯一區分crc32('http://wwww.baidu.com');給urlcrc 建索引而不是去給url 避免了索引
學會explain 來查看效果;
偽hash索引效果
同時存url_hash列
create table t10 ( id int primary key, url char(60) not null default '' );
insert into t10 values (1,'http://www.baidu.com'), (2,'http://www.sina.com'), (3,'http://www.sohu.com.cn'), (4,'http://www.onlinedown.net'), (5,'http://www.gov.cn'); alter table t10 add urlcrc int unsigned not null;
在sqlc上儲存時, crcurl== crccurl
在sqlc的結果是32位元int無符號數,因此當資料超過40億,也會有重複,但這是值得的.
(索引長度為int4個字節)
多咧索引的設計
但從商城的實際業務業務看, 顧客一般先選大分類->小分類->品牌,
最終選擇(1)index(cat_id,brand_id), + index(cat_id,shop_price)來建立索引
甚至可以再加(3)index(cat_id,brand_id,shop_price),3個冗餘索引冗餘欄位。 。 。
但(3)中的前2列和(1)中的前2列一樣,再去掉(1)
index(cat_id,price) 和index(cat_id,brand_id,shop_price);就是可以冗餘但是不能重複左前綴原則

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

如何透過MySQL對AVG函數最佳化來提高效能MySQL是一款流行的關聯式資料庫管理系統,其中包含了許多強大的函數以及功能。其中AVG函數被廣泛使用在計算平均值的情形,但由於這個函數需要遍歷整個資料集,所以在大規模資料的情況下會導致效能問題。本文將詳細介紹如何透過MySQL對AVG函數進行最佳化,進而提高效能。 1.使用索引索引是MySQL最佳化中最重要的一部分,

基於TokuDB引擎的MySQL最佳化:提升寫入與壓縮效能引言:MySQL作為一種常用的關聯式資料庫管理系統,在大數據時代的脈絡下,面臨越來越高的寫入壓力和儲存需求。為了應對這項挑戰,TokuDB引擎應運而生。本文將介紹如何利用TokuDB引擎來提升MySQL的寫入效能與壓縮效能。一、什麼是TokuDB引擎? TokuDB引擎是一種面向大數據的、用於處理高寫入

MySQL是一種廣泛應用於電子商務領域的關聯式資料庫管理系統。在電子商務應用中,對MySQL進行最佳化和安全工作是至關重要的。本文將解析MySQL在電子商務應用中的最佳化與安全專案經驗。一、效能最佳化資料庫架構設計:在電子商務應用中,資料庫的設計是關鍵。合理的表結構設計和索引設計能夠提高資料庫的查詢效能。同時,使用分錶和分區技術可以減少單一表的資料量,並提高查詢效率

MySQL是一種廣泛使用的關聯式資料庫管理系統,常用於Web應用程式的開發與資料儲存。在實際應用中,對MySQL的底層最佳化特別重要,其中SQL語句的高階最佳化是提升資料庫效能的關鍵所在。本文將介紹實現MySQL底層優化的一些技巧和最佳實踐,以及具體的程式碼範例。確定查詢條件在編寫SQL語句時,首先要明確定義查詢條件,避免使用無限制的通配符查詢,即避免使用"%"開

如何優化MySQL連線數管理MySQL是一種流行的關聯式資料庫管理系統,廣泛應用於各種網站和應用程式。在實際的應用過程中,MySQL連線數管理是一個非常重要的問題,尤其是在高並發情況下,合理管理連線數可以提高系統的效能和穩定性。本文將介紹如何最佳化MySQL連線數管理,包括詳細的程式碼範例。一、理解連線數管理在MySQL中,連線數是指系統能夠同時連

MySQL資料庫作為一種常見的關聯式資料庫,隨著資料庫中資料量的增加和查詢需求的變化,底層最佳化變得特別重要。在進行MySQL底層最佳化的過程中,SQL語句最佳化是一項至關重要的工作。本文將討論SQL語句優化的常見技巧和原則,並提供具體的程式碼範例。首先,SQL語句最佳化需要考慮以下幾個面向:索引的最佳化、查詢語句的最佳化、預存程序和觸發器的最佳化等。在這些方面,我們將從具

MySQL是一種廣泛使用的開源資料庫管理系統,用於儲存和管理大量資料。但是,使用MySQL時,您可能會遇到各種各樣的問題,從簡單的語法錯誤到更複雜的效能問題和故障。在本文中,我們將探討一些最常見的MySQL問題和解決方法。連線問題連線問題很常見。如果您無法連線到MySQL伺服器,請檢查以下幾點:1)MySQL伺服器是否正在執行2)網路連線是否正常3)MySQ

如何合理配置和最佳化MySQL的雙寫緩衝技術引言:MySQL的雙寫緩衝技術是一種提高資料安全性和效能的重要技術。本文將介紹如何合理配置和最佳化MySQL的雙寫緩衝技術,以便更好地保護數據,並提升資料庫的效能。一、什麼是雙寫緩衝技術雙寫緩衝技術是MySQL的一種I/O最佳化技術,它可以大幅減少磁碟I/O操作的次數,提高資料庫的寫入效能。當MySQL執行寫入操作時,先
