mysql general clomun_关于MySQL索引index杂谈
MySQL建索引命令
create index index_name on tablename(clomun_name.....);
比如建了
CREATE INDEX ?O_N_P_D ?ON ? t_db_netspeed(o,n,p,d)
建好索引之后,使用SELECT 命令進行查詢
SELECT COUNT(*) FROM ?t_db_netspeed WHERE O=1
這句話也會用到前面建立的索引 O_N_P_D,
首先我們來理解一下索引,多值索引中存放了N個索引值,這N個索引值的排序是按照建立索引的順利來的,如果前面建立的那個索引,就是先根據(jù)o值建立索引然后再是n,p,d,如果o/n/p值都一樣,則按照d值來排序。
——“索引對多個值進行排序的一句是CRATE TABLE 語句中定義索引時列的順序”
所以即便是指查詢O值也會用到索引O_N_P_D,即索引值時根據(jù)4個列值來建立的,不是非得具備這4個列值
但是這里也有個前提 就是順序,即索引不能跳過索引順序,可以看到索引o值時在索引O_N_P_D的第一個索引列
如果查詢語句為
SELECT COUNT(*) FROM t_db_netspeed WHERE N=1;
此時就不會用到索引O_N_P_D索引
——“WHERE 配合索引是不分順序的”
如果查詢語句為:
SELECT COUNT(*) FROM t_db_netspeed WHERE n=1 AND o=1 AND p=1 AND d=1;
此語句也會用到索引O_N_P_D;
——優(yōu)先索引數(shù)量
如果在上面那個表t_db_netspeed 也建立了另外一個索引P
CREATE INDEX P ON t_db_netspeed(p)
如果查詢語句為:
SELECT COUNT(*) FROM t_db_netspeed WHERE p=1 AND o=1;
會優(yōu)先使用索引P_N_P_D ,雖然查詢語句中沒有用到4個索引值,但是用了其中2個,所以不會使用索引P
———將table中數(shù)據(jù)刪除后 索引index仍舊存在,重新插入數(shù)據(jù)后,索引貌似仍有效!!
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的mysql general clomun_关于MySQL索引index杂谈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue替换全部符合’字符串_技术成长日记
- 下一篇: python绘制折线图显示数据_漂亮图表