MySQL将连接查询结果存入新表,并解决ERROR 1206 (HY000)

实验环境

window10专业版&&MySQL8.0

问题背景

课程项目中使用MySQL做新指标构建时需要用到等值连接查询,并将结果存在新表中;

数据量较大(32,320,079条)情况下运行时出现ERROR 1206 (HY000): The total number of locks exceeds the lock table size

代码

/*time即我们要生成的新表
productid和orderhour都是独有的,所以不用加前缀*/
create table time

select orderp.orderid,productid,orderhour

from orderp,ordert

where orderp.orderid=ordert.orderid;

出现的问题

数据量过大时会报错ERROR 1206 (HY000): The total number of locks exceeds the lock table size

先查询innodb_buffer_pool_size的值


show variables like '%buffer%'

可以看到innodb_buffer_pool_size默认为8M,需要改大。

进入C:\ProgramData\MySQL\MySQL Server 8.0目录修改my.ini文件(管理员模式打开),找到innodb_buffer_pool_size,将默认值改为64M.

重新启动MySQL服务(在任务管理器中),再次试验后成功

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容