我确实有一个数据库,其中的表包含300mi以上的条目。每分钟有将近300次插入,
很多时候我们需要获取统计数据。 (计数,平均avg)。 每个查询需要10到30秒才能完成。
从查询开始到结束,表数据增加了100多个条目。
我从统计查询中获得的数字与查询的开始还是结束有关?
我正在使用mysql和innodb
答案 0 :(得分:1)
无论您的事务隔离级别如何(例如,可重复读取或读取提交),针对InnoDB表的任何单个SQL查询都会获得某种“快照”或数据库的一致视图。
SELECT
查询不会阻止并发插入或更新,但是这些插入或更新不会影响SELECT
查询的结果。它将“查看” SQL查询的开始中存在的数据。
如果使用可重复读取的事务隔离级别,则事务中的所有查询(包括潜在的几个SELECT
查询(至少是非锁定查询))都会看到一致的数据快照,即使并发插入是继续。