如何在MYSQL中为两个表创建索引

时间:2014-01-05 14:42:28

标签: mysql database indexing

我有两张桌子。第一个包含由网站用户输入的CityStateZip个出租属性。一些城市名称拼写错误。第二个表格中包含美国邮政服务中几乎所有(但不是全部)CitiesStatesZip codes个城市。

我正在尝试运行以下SQL语句,以使用US Postal Service提供的正确名称更新租赁属性表记录。但仅适用于具有特定“Payment_Plan”的记录。我将重新使用此声明约15种不同的“Payment_Plan”类型。所以唯一会改变的是“Payment_Plan”中给出的值:

UPDATE tblRentals 
LEFT JOIN tblZip 
  ON tblRentals.List_Zip = tblZip.Zip 
  AND tblRentals.Payment_Plan = 'LINX' 
SET tblRentals.List_City = tblZip.City;

我正在使用LEFT Join,因为并非每个邮政编码都在我的美国邮政表格中,因为它已有几年了。

该SQL语句只需15秒即可更新200条记录。我猜这是因为我需要两个表之间的某种索引。在tblRentals中有125,000条记录,在tblZip中有大约45,000条记录。

我真的不太了解索引,但是创建一个可以加速索引的索引的正确SQL语法是什么?

1 个答案:

答案 0 :(得分:0)

从评论中发帖回答,以便关闭此问题:

tblRentals.List_Zip上添加索引。

是的 - 如果您希望tblRentals中包含邮政编码但tblZip中没有匹配的记录保持不变,请使用INNER JOIN而不是LEFT JOIN