2017-08-24 18 views
-2

我有2代表具有相同列(一類產品的表A,對另一種類型的表B中。),每表中的行的10KMySQL的列類型,以提高選擇性能

我有2個問題:

q1) 如何在SELECT查詢中獲得最佳性能? 與SELECT UNION ......或者最好是有一個表,與另一列(類型),並寫出這樣的查詢:SELECT ... WHERE ...和type = 'A'?

Q2) 在我有一個名爲「對象」一欄,並對其內容的行中的媒體lenght表是160個字符的 我怎麼可以在一個SELECT查詢的最佳性能? 使用columntype VARCHAR(索引)還是使用TEXT?

感謝您的建議和對不起我的英語!

+0

對於第一個問題,有,你可以用'使用列的第二個選項WHERE'可能是要走的路。對於第二個問題,varchar或text可能不是最大的問題,因爲您是否在這些(也可能是其他)列上有索引。而'TEXT'必須有一個前綴長度纔能有一個索引。 –

回答

0

至於問題1,我不知道你是怎麼來到這個設計模式,但不管用UNION推出性能問題,如果兩個產品具有相同的屬性和唯一不同的類型,我會用一個獨特的表兩者都指定一個TYPE列。如果列有很大不同,請維護您的兩個表架構(以避免有一個包含大量空條目的表),並在此處閱讀有關UNION性能的信息The effects UNION in a SQL query

至於問題2,請參閱此主題MySQL: Large VARCHAR vs. TEXT? 。在你的情況下,VARCHAR對於內聯存儲該列的文本來說非常合適。

希望對大家有所幫助。