我有2個表,我需要加入他們。不幸的是,我沒有我可以使用的ID,唯一的標準是一些varchar列。這是「對」的一部分加盟:MySQL:如何加速連接?
join sales_flat_order_address sfoa on
concat(lower(trim(sfoa.firstname)), lower(trim(sfoa.lastname))) = concat(lower(trim(so.firstname)), lower(trim(so.lastname)))
我知道,這是不是最快的方法,但有沒有辦法spped這件事多一點?或者,也許我現在不能想到一個解決方法?
謝謝!
這將是當你的表變得更大更慢,因爲它會執行'由於不使用'INDEX'全表scan'。我唯一的建議是規範你的表格。 – 2013-02-26 15:32:35
您的條件和數據非常專業化,它使我們很難知道可能存在哪些其他選項。這不是一個非常好的數據庫設計。 – crush 2013-02-26 15:33:55
執行這樣的功能本質上是潛在的性能拖延。建議改變表格以在每個表格上包含索引ID字段以及相應的主鍵/外鍵,相應地改變連接,應該在很長時間內產生顯着的性能提升和更好的可擴展性。 – 2013-02-26 15:34:23