最近在做数据批量查询和更新,即从表1中group by 某个字段,然后对另外一列求和,最后将求和得到的字段更新到表2里去。由于表一比较大而且跟表1同类的表很多,所以想用多线程解决问题,即多个表一同时做相同的查询,然后分别导入多个跟表2同类的表。
在实验的时候,发现一个线程(即一个表1到一个表2)最快,两个线程(同时两个表一类型的表到两个表二类型的表)次之,线程越多速度越慢,且成指数递减。在数据查询的时候用命令show processlist;无意中发现这个查询有个状态copy xxx to tmp table on disk.然后去网上查了下,发现是由于tmp_table_size和max_heap_table_size设置过小,导致查询时候的临时表在内存放不下,然后转移成磁盘临时表了。tmp_table_size规定了内部内存临时表的最大值,每个线程都要分配。(实际起限制作用的是tmp_table_size和max_heap_table_size的最小值。)如果内存临时表超出了限制,MySQL就会自动地把它转化为基于磁盘的MyISAM表,存储在指定的tmpdir目录下。
通过增大上述两个配置项的值,解决了问题。同时开五个线程,每个线程的处理速度跟单线程速度一样快。总的来说就是快了5倍。
分享到:
相关推荐
MySQL查询优化技术_索引
因此,了解如何优化MySQL查询性能至关重要。 本文通过详细的示例和说明,深入探讨了MySQL查询优化的重要性及其实现方法。我们介绍了查询优化技术的各个方面,包括索引、查询语句、表结构等基本优化方法以及高级优化...
描述 MySQL 查询优化器的工作原理。 MySQL 查询优化器主要为执行的查询决断最有效的路线
本文档详细介绍了Mysql的查询优化性能的研究,对一些常用方法进行了优化改进~
MySQL查询优化浅析
Mysql查询优化,查询优化器,子查询,分页查询1)在执行计划1中,哪张表是驱动表? 表的连接顺序是怎样的?每一步表的扫描类型是什么? 2)在执行计划2中,表的执行顺序是怎样的?每一步表的扫描类型是什么? 3)在...
第3课 查询优化技术理论与MySQL实践(一)------子查询的优化(一) 第4课 查询优化技术理论与MySQL实践(二)------子查询的优化(二) 从理论看,子查询包括的内容和范围,建立清晰的概念 从实践看,MySQL的子查询...
MySQL查询优化系列讲座之查询优化器.pdf
MySQL查询 优化 技术讲座 让网站速度更快
Mysql查询优化器.rar
1、理解MYSQL的Query Optimizer 2、Query语句优化基本思路和原则 3、充分利用Explain 和 Profiling 4、合理设计并利用索引 5、order by、group by 和 DISTINCT优化 6、小结
MySQL 查询优化 SQL诊断调优原则、原理及思路
MySQL查询优化系列讲座
MySQL数据库技术分享 MySQL查询优化浅析 共32页.pdf
在应用系统中MySQL查询优化大体分为: 1、升级硬件; 2、对进程的设置进行调优; 3、对查询操作进行优化。
MySQL查询优化实践-最终版.pdf
Mysql查询优化器[文].pdf
针对 MySQL 的查询优化,非常给力!针对 MySQL 的查询优化,非常给力!针对 MySQL 的查询优化,非常给力!针对 MySQL 的查询优化,非常给力!针对 MySQL 的查询优化,非常给力!针对 MySQL 的查询优化,非常给力!
索引在MySQL查询优化中的应用.pdf