繁体   English   中英

Mysql连接速度很慢

[英]Mysql very slow Join Performance

我希望有人可以提供建议,但是我在下面的join语句周围经历了很长的处理时间,并希望获得一些有关提高性能的建议。 两个表中每个表都有数百万条记录,并且我有列索引,但是运行此联接仍需要70多个小时。

update <table x> a
left join <table y> b
on a.PARENT_ID=b.ID and a.LOAD_ID=b.LOADID                    
set a.DATETIME=str_to_date(b.`DateTime`, '%m/%d/%Y %H:%i:%s'), a.ROOM_ID=b.ConID, a.STATUS='Exited'
where a.PARENT_ID=b.ID and a.LOAD_ID=b.LOADID and a.PROCESSING_FLAG = 0 and b.PROCESSING_FLAG = 0

因此,表x拥有66m条记录,表y具有44m条记录,但是使用PROCESSING_FLAG它将不会将所有66m条记录与44m条记录连接在一起,而只是将其子集连接在一起。 我在a.Parent_Id,b.ID,a.Load_ID,b.LoadID,a.Room_ID,b.ConID,a.Processing_Flag和b.Processing_Flag上具有列索引。 两个表都使用MYISAM,而我正在使用MySQL 5.6.17。

我可以做些什么来改善此语句的性能吗? 我当时正在考虑将第一步的关键缓冲区增加到6G。

MYISAM是最好的Select操作。 如果您的数据库非常庞大,且拥有良好的用户。 更新操作需要时间。

尝试使索引列连接。 加入会表现良好。

与您的mysql服务器管理员通信告诉他/她增加join_buffer_size

join_buffer_size服务器变量,负责为不执行与索引列的联接的联接分配内存

我希望这能帮到您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM