如何向MySQL表中添加索引?我有一個(gè)非常大的MySQL表,包含大約15萬(wàn)行數(shù)據(jù)。目前,當(dāng)我試著運(yùn)行SELECT * FROM table WHERE id = '1';代碼運(yùn)行良好,因?yàn)镮D字段是主要索引。然而,最近的一個(gè)項(xiàng)目的發(fā)展,我不得不搜索另一個(gè)領(lǐng)域的數(shù)據(jù)庫(kù)。例如SELECT * FROM table WHERE product_id = '1';這個(gè)字段以前沒有索引,但是,我把它作為索引添加了,但是當(dāng)我嘗試運(yùn)行上面的查詢時(shí),結(jié)果非常慢。EXPLAIN查詢顯示,當(dāng)我已經(jīng)添加了一個(gè)字段時(shí),產(chǎn)品_id字段沒有索引,因此,該查詢?cè)?0分鐘到30分鐘的任何地方返回一行。我的全部解釋結(jié)果是:| 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字段存儲(chǔ)為int,而ProductID字段存儲(chǔ)為VARCHAR。這可能是問題的根源嗎?
3 回答

江戶川亂折騰
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
ALTER TABLE `table` ADD INDEX `product_id` (`product_id`)
integer
strings
id
int

溫溫醬
TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊
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'
.
添加回答
舉報(bào)
0/150
提交
取消