如何改善MySQL查询时间
作者:互联网
我正在使用Google SQL Cloud(MySQL 5.5 w / 4GB ram)合并两个数据集,每个数据集具有〜1M行,并且运行需要5个小时以上.我从Sequel Pro运行以下查询:
create table newtable as (select * from table1 t1 left join table2 t2 using (key))
每个表都有大约20个VARCHAR列.密钥也是VARCHAR.
我已经在两个表中的键上创建了一个索引,但这并没有真正改变性能.我进行了很多搜索,但是找不到任何有关如何缩短查询时间的直接建议.这是MySQL的预期查询时间吗?
编辑:每个表是〜250MB
解决方法:
我注意到的第一件事是您的KEY设置为VARCHAR.这可能是导致您性能下降的主要原因.可以通过添加自动递增的Integer PRIMARY KEY来改进此功能.由于要分别比较“表1”中每个百万个KEY值的字符串与“表2”中每个百万个KEY值的比较,因此,这需要执行非常耗费性能的工作,通过比较每个字符中的每个字符来完成这项工作的字符串.由于使用Integers是一个简单的值对值比较,因此影响不大.
由于实例的物理硬件限制,您的Cloud SQl实例的层大小也将对性能产生很大影响.您可以临时更改实例的层,以在Cloud SQL用户界面的“编辑”部分中或使用Cloud SDK对其进行测试.
标签:google-cloud-sql,mysql 来源: https://codeday.me/bug/20191120/2044263.html