2017-03-07 20 views
0

我的表架構搜索:的MySQL使用的所有類型,同時在主鍵

This is my Table Schema

我上面的表中有〜10L的數據。當使用說明一下,它顯示爲,

enter image description here

由此看來,型顯示ALL額外節目使用其中O(1)。但是,對於主鍵搜索,類型應該是const,O(1)?我無法找出問題,這會導致查詢速度變慢。

+0

當您將您正在查找的值作爲數字傳遞時,您的id字段爲varchar。將您的ID轉換爲數字或將值作爲字符串傳遞。 – Shadow

回答

2

您的id字段是varchar,而您將您正在查找的值作爲數字傳遞。

這意味着,MySQL已經執行用於查找值的隱式數據轉換和will not be able to use the index

對於具有數字字符串列的比較,MySQL不能使用在列的 索引來查找快速提高價值。如果str_col是 索引的字符串列,該指數不能在下面的語句執行 查詢時使用:

SELECT * FROM tbl_name WHERE str_col=1; 

這樣做的原因是, 有可能轉換爲數值1許多不同的字符串,如 爲'1','1'或'1a'。

要麼轉換你id外地號碼或傳遞值的字符串。

0

由於您的id列是varchar,因此您需要在搜索時爲其提供字符串。

嘗試,id= '123456'

原因: 因爲你是一個比較VARCHAR列來詮釋,它會首先行轉換成int,然後用123456(INT)相匹配。

相關問題