索引

-- 前綴索引和索引選擇性

-- 構(gòu)建demo表數(shù)據(jù)
drop TABLE city_demo;
create table city_demo(city varchar(50) not null) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
insert into city_demo(city) select name from hz_china_area;
select count() from city_demo;
-- 找到最常見的城市列表
select count(
) as cnt, city from city_demo group by city order by cnt desc limit 11;
-- 找到最頻繁出現(xiàn)的前綴
select count(*) as cnt, left(city, 3) as pref from city_demo group by pref order by cnt desc limit 10;

-- 計算完整列的選擇性
select count(distinct city)/count(*) from city_demo;

select count(distinct left(city,3))/count() as sel3,
count(distinct left(city,4))/count(
) as sel4,
count(distinct left(city,5))/count() as sel5,
count(distinct left(city,6))/count(
) as sel6,
count(distinct left(city,7))/count(*) as sel7
from city_demo;

-- 創(chuàng)建前綴索引. 前綴索引不能做order by和group by, 也不能做覆蓋掃描
-- 可以在衣柜很長的16進制字符串上創(chuàng)建索引. 比如長度8,可以顯著的提升性能.
alter table city_demo add key (city(7));

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • B-Tree索引 適用于全鍵型、鍵值范圍、鍵前綴查找 全值匹配 匹配最左前綴 匹配列前綴 匹配范圍值 精確匹配某一...
    低調(diào)的小玩偶閱讀 223評論 0 0
  • 高效地選擇和使用索引有很多種方式, 其中有些是針對特殊案例的優(yōu)化方法, 有些則是針對特定行為的優(yōu)化. 1 獨立的列...
    滬上最強亞巴頓閱讀 1,315評論 1 12
  • MySQL索引總結(jié) 索引原理 索引的優(yōu)缺點 優(yōu)點 索引大大減小了服務(wù)器需要掃描的數(shù)據(jù)量 索引可以幫助服務(wù)器避免排序...
    直覺00_57閱讀 157評論 0 0
  • 索引原理 索引的優(yōu)缺點 優(yōu)點索引大大減小了服務(wù)器需要掃描的數(shù)據(jù)量索引可以幫助服務(wù)器避免排序和臨時表索引可以將隨機I...
    我愛張智容閱讀 659評論 0 0
  • 對于數(shù)據(jù)庫的優(yōu)化主要包括三個部分:查詢優(yōu)化、索引優(yōu)化和字段類型優(yōu)化,其中,索引優(yōu)化則是數(shù)據(jù)庫優(yōu)化的重中之重。一個查...
    charming_coder閱讀 4,476評論 1 18

友情鏈接更多精彩內(nèi)容