1. 程式人生 > >性別欄位建立索引問題

性別欄位建立索引問題

性別欄位能不能建立索引

之前面試被問到一個問題

什麼欄位適合建索引,什麼欄位不適合建索引。

性別欄位可以建索引嗎?

我回答得不是很好。

性別欄位這種重複性很強的欄位,不要建立索引。為什麼不能呢?

下面建立表測試下。如:我建了個tb_test表,往裡面插入了七百多萬資料,先給性別建立索引,查詢開啟 sql執行時間記錄。

建立名為tb_index_test  的索引

alter table tb_test add index tb_index_test(genenre)
# 開啟時間記錄
set profiling = 1;

查詢genenre=1 的資料;

select * from tb_test where genenre=1;

刪除索引

# 檢視tb_test表的索引
show index from tb_test;
# 刪除索引
drop index tb_test_index on tb_test;

在次查詢genenre=1 的資料

select * from tb_test where genenre=1;

檢視以上幾個命令的執行時間

show profiles;

結果如下

新增索引後查詢 比原來為新增索引還慢

新增索引 的查詢耗時為 64.5秒

沒有索引的查詢耗時為 7.8秒

結論是 重複性較強的欄位,不適合新增索引