亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何向MySQL表中添加索引?

如何向MySQL表中添加索引?

慕田峪9158850 2019-12-18 18:13:24
如何向MySQL表中添加索引?我有一個非常大的MySQL表,包含大約15萬行數據。目前,當我試著運行SELECT * FROM table WHERE id = '1';代碼運行良好,因為ID字段是主要索引。然而,最近的一個項目的發展,我不得不搜索另一個領域的數據庫。例如SELECT * FROM table WHERE product_id = '1';這個字段以前沒有索引,但是,我把它作為索引添加了,但是當我嘗試運行上面的查詢時,結果非常慢。EXPLAIN查詢顯示,當我已經添加了一個字段時,產品_id字段沒有索引,因此,該查詢在20分鐘到30分鐘的任何地方返回一行。我的全部解釋結果是:| id | select_type | table | type | possible_keys        | key  | key_len | ref  | rows      | Extra       |+----+-------------+-------+------+----------------------+------+---------+------+------+------------------+|  1 | SIMPLE      | table | ALL  | NULL                 | NULL | NULL    | NULL |    157211 | Using where |+----+-------------+-------+------+----------------------+------+---------+------+------+------------------+值得注意的是,我剛剛查看了ID字段,ID字段存儲為int,而ProductID字段存儲為VARCHAR。這可能是問題的根源嗎?
查看完整描述

3 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

ALTER TABLE `table` ADD INDEX `product_id` (`product_id`)

永遠不要比較integerstrings在MySQL。如果idint刪除引號。



查看完整回答
反對 回復 2019-12-20
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

ALTER TABLE TABLE_NAME ADD INDEX (COLUMN_NAME);


查看完整回答
反對 回復 2019-12-20
?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

在MySQL中,如果您使用ALTER TABLE tbl ADD INDEX (col)而不是ALTER TABLE tbl ADD INDEX col (col),然后使用ALTER TABLE tbl ADD INDEX (col)不止一次會繼續添加名為col_2,col_3.。每次都是。而使用ALTER TABLE tbl ADD INDEX col (col)第二次,會給ERROR 1061 (42000): Duplicate key name 'col'.

查看完整回答
反對 回復 2019-12-20
  • 3 回答
  • 0 關注
  • 427 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號