手动call proc(in_date) 成功 ,event执行出现creating sort index阻塞
具体问题
在SQLConsole手动call proc_(in_date) 执行成功, 耗时40s左右;使用event定时执行call proc_(in_date)时,processlist长时间(一整晚)处于creating sort index 。
数据:20W左右。
工具:阿里云DMS。
尝试1
网友帖子中,说可能由于order by 导致,而代码中有窗口函数row_number() over(partition by morderid order by orderid),字段均有索引。
将该行注释,问题没有解决。
尝试2
innodb_buffer_pool_size大小
mysql> show variables like ‘innodb_buffer_pool%’;
+————————————-+—————-+
| Variable_name | Value |
+————————————-+—————-+
| innodb_buffer_pool_chunk_size | 134217728 |
| innodb_buffer_pool_dump_at_shutdown | OFF |
| innodb_buffer_pool_dump_now | OFF |
| innodb_buffer_pool_dump_pct | 25 |
| innodb_buffer_pool_filename | ib_buffer_pool |
| innodb_buffer_pool_in_core_file | OFF |
| innodb_buffer_pool_instances | 8 |
| innodb_buffer_pool_load_abort | OFF |
| innodb_buffer_pool_load_at_startup | OFF |
| innodb_buffer_pool_load_now | OFF |
| innodb_buffer_pool_size | 103079215104 |
innodb_buffer_pool_size= 96G,理论上应该不是这个原因。
主观猜想
如果手动执行能成功的话,也许代码本身影响不大?
在控制台执行和event执行除了手动和自动的差别外,有其他差异吗?这个结果是否是其他差异导致的?
推荐文章: