mysql查询间歇返回空结果
我有一个查询,它有时在主机上返回一个空集,但在读取的复制副本上从不返回,并且在两个数据库上都有匹配的数据。这是随机的,我想知道是否有一个mysql设置或查询缓存的东西。在rds上运行mysql 5.6.40-log 我尝试过使用mysql查询间歇返回空结果,mysql,Mysql,我有一个查询,它有时在主机上返回一个空集,但在读取的复制副本上从不返回,并且在两个数据库上都有匹配的数据。这是随机的,我想知道是否有一个mysql设置或查询缓存的东西。在rds上运行mysql 5.6.40-log 我尝试过使用optimizer\u switch=“index\u merge\u intersection=off”,但没有成功 UPDATE optimizer\u switch=“index\u merge\u intersection=off似乎起到了作用,但我在进行此更改后
optimizer\u switch=“index\u merge\u intersection=off”
,但没有成功
UPDATE optimizer\u switch=“index\u merge\u intersection=off似乎起到了作用,但我在进行此更改后清除了查询缓存,问题似乎自行解决了)。
发生的一个非常奇怪的问题是,查询在100%的时间内都是通过mysql命令行工作的;但直到我清除了查询缓存(即使它以同一用户的身份连接),web应用程序才工作。
一旦我对表phppos_items
进行了优化,它会修复一点(3分钟),然后返回到不稳定状态(大部分是空集)。这些都是innodb表
设置:
似乎在一天的繁忙时间更经常返回空集。服务器是rds m4.L,有500个数据库,每个数据库有100个表
查询:
SELECT SUM( phppos_sales_items.damaged_qty ) AS damaged_qty,
SUM( phppos_sales_items.subtotal ) AS subtotal,
SUM( phppos_sales_items.total ) AS total,
SUM( phppos_sales_items.tax ) AS tax,
SUM( phppos_sales_items.profit ) AS profit
FROM `phppos_sales`
JOIN `phppos_sales_items` ON `phppos_sales_items`.`sale_id` = `phppos_sales`.`sale_id`
JOIN `phppos_items` ON `phppos_sales_items`.`item_id` = `phppos_items`.`item_id`
WHERE `phppos_sales`.`deleted` =0
AND `sale_time` BETWEEN '2019-01-01 00:00:00' AND '2019-12-31 23:59:59'
AND `phppos_sales`.`location_id` IN ( 1 )
AND `phppos_sales`.`store_account_payment` =0
AND `suspended` <2
AND `phppos_items`.`deleted` =0
AND `phppos_items`.`supplier_id` = '485'
GROUP BY `phppos_sales_items`.`sale_id`
您是否收到返回的错误代码或任何东西?您确定哪里的条件始终为真?这可能是隔离/序列化的问题吗?没有返回的错误代码,只有空的结果集。似乎只在一天的繁忙时间经常发生。哪里的条件始终为真MySQL错误参考是您是否收到返回的错误代码或任何东西?您确定哪里的条件始终为真吗?这可能是隔离/序列化的问题吗?没有返回错误代码,只有空的结果集。似乎只在一天的繁忙时间经常发生。哪里的条件始终为真MySQL错误参考是
+----+-------------+--------------------+-------------+-----------------------------------------------------------------------------------------------+-----------------------------+---------+-------------------------------------------------------+------+---------------------------------------------------------------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------------+-------------+-----------------------------------------------------------------------------------------------+-----------------------------+---------+-------------------------------------------------------+------+---------------------------------------------------------------------------------------------------------+
| 1 | SIMPLE | phppos_items | index_merge | PRIMARY,phppos_items_ibfk_1,deleted,deleted_system_item | phppos_items_ibfk_1,deleted | 5,4 | NULL | 44 | Using intersect(phppos_items_ibfk_1,deleted); Using where; Using index; Using temporary; Using filesort |
| 1 | SIMPLE | phppos_sales_items | ref | PRIMARY,item_id,phppos_sales_items_ibfk_3,phppos_sales_items_ibfk_4,phppos_sales_items_ibfk_5 | item_id | 4 | phppoint_customer.phppos_items.item_id | 16 | NULL |
| 1 | SIMPLE | phppos_sales | eq_ref | PRIMARY,deleted,location_id,sales_search,phppos_sales_ibfk_10 | PRIMARY | 4 | phppoint_customer.phppos_sales_items.sale_id | 1 | Using where |
+----+-------------+--------------------+-------------+-----------------------------------------------------------------------------------------------+-----------------------------+---------+-------------------------------------------------------+------+---------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)