我正在尝试查询 mySQL 以检查表中特定列中的值是否已更新。例如,我有一个表,其中有一列保存 max_age 数据。我想检查 max_age 是否更新。
这是我到目前为止所做的,但我有数千万的数据需要处理。我想知道整个数据库有多少数据没有更新。有没有办法优化这个查询?
SELECT Count(a.column1)
FROM table1 a
INNER JOIN table2 b
ON a.column1 = b.column2
INNER JOIN table3 c
ON b.column2 = c.b.column3
WHERE a.max_age <> -1
AND a.max_age = ( 2013 - c.birth_year )
An example: This example the answer returned is 1 because [max_age = (2013 - birth_year)] in third row.
max_age 2013 - birth_year
34 31
27 25
44 44
最佳答案
表 table2 在您的查询中似乎毫无用处,因为 a.column1 = b.column2
和 b.column2 = b.column3
。这意味着a.column1 = c.column3
。然后:
SELECT COUNT(a.column1) FROM table1 a
INNER JOIN table2 b ON a.column1 = c.column3
WHERE a.max_age <> -1
AND a.max_age = (2013 - c.birth_year)
另一方面,如果您想进一步优化,您可以强制使用索引来进行查询,甚至创建 View 。
我希望这有用。
关于mysql - 查询优化检查 MySQL 整个数据库中的列是否是最新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20754035/