我正在尝试查询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发布于 2013-12-24 10:42:37
表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)另一方面,如果要进一步优化,可以强制使用索引对查询进行索引,甚至创建视图。
我希望这是有用的。
https://stackoverflow.com/questions/20754035
复制相似问题