我有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