我在MySQL數據庫中有兩個設計不佳的表。這些表格包含很長的字符串。在MySQL中的字符串約束中創建外鍵
在table1
領域unqiue_string_1
是unqiue:
table1
unique_string_1 | long_string_1 | long_string | ..
而在table2
領域unqiue_string_1
不是唯一的。
table2
unique_string_1 | .. | more strings..
------------------------------------------
sample_string_1 | .. | more strings..
sample_string_1 | .. | more strings..
sample_string_1 | .. | more strings..
sample_string_3 | .. | more strings..
sample_string_3 | .. | more strings..
sample_string_3 | .. | more strings..
sample_string_4 | .. | more strings..
sample_string_4 | .. | more strings..
現在我的phpMyAdmin連接超時,當我嘗試檢索大型數據集。我希望通過編制索引和創建外鍵關係來提高查詢速度。
首先,我這樣做:
CREATE UNIQUE INDEX my_id ON table1(unqiue_string_1)
現在我想要一個SQL語句創建外鍵。我曾經嘗試這樣做:
ALTER TABLE table2
ADD FOREIGN KEY (`my_id`)
REFERENCES table(`my_id`);
我覺得我缺少某種約束,使sample_string_1
在table2
等於指數table1
的外鍵。我錯過了什麼?
有多長字符串? – 2015-04-04 17:30:34
他們大約有50個字符。有幾千個獨特的字符串,但是,使'table2'長於100.000行。感謝您的快速回復! – user1965074 2015-04-04 17:33:36