成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

mysql - sql索引問題

瀏覽:108日期:2022-06-14 10:34:57

問題描述

有3個(gè)語句。

where cid=?

where id=? and ownerid=?

where cid=? and ownerid=?

現(xiàn)在id已經(jīng)是主鍵索引了。請(qǐng)問這樣的情況表表應(yīng)該如何加索引?

分別對(duì)ownerid,cid添加索引嗎?

還有一種情況,另一個(gè)表:where cid=? and userid=?where userid=?where cid=?這3個(gè)sql語句應(yīng)該如何添加索引?分別對(duì)userid和cid添加索引?

問題解答

回答1:

第一種加一個(gè)(cid,ownerid)的索引 順序不要顛倒 關(guān)于id和ownerid的不用加了 id已經(jīng)是主鍵了 再加ownerid的索引純屬多余

第二種加一個(gè)(cid,userid)和userid

當(dāng)然這兩種情況嚴(yán)格來說都需要確認(rèn)哪個(gè)字段的選擇性高 如果差別很大的話 建議根據(jù)情況把復(fù)合索引的第一個(gè)字段使用選擇性高的字段

回答2:

情況1

ALTER TABLE test_table ADD INDEX index1 (id,ownerid);

ALTER TABLE test_table ADD INDEX index2 (cid,ownerid);

情況2

ALTER TABLE test_table ADD INDEX index3 (cid,userid);

ALTER TABLE test_table ADD INDEX index4 (userid);

回答3:

針對(duì)第一個(gè)的三條sql語句:

alter table `table_name` add key idx_ownerid_cid(`ownerid`, `cid`);

第二個(gè)表的語句:

alter table `table_name` add key idx_cid_useridid(`cid`, `userid`);alter table `table_name` add key idx_userid(`userid`);回答4:

第一種情況加這個(gè)索引就可以了

alter table `table_name` add key idx_cid_ownerid(`cid`,`ownerid`);

第二種情況樓上說得對(duì)。

相關(guān)文章: