是否有优化以下查询的方法?SELECT count(*)>1000 FROM table_with_lot_of_rows WHERE condition_on_index;
使用此查询,MySQL首先执行count(*),然后执行比较当只有少数行满足条件时,这是快速的,但如果很多行满足条件,则可能要花费很长时间。是否有办法在找到1000项后立即停止计数,而不是检查所有的结果?
当用各种where子句写SQL查询时(我只使用MySQL和sqlite),我通常对重新排序查询子句以将“最好的”放在第一位(将删除更多行的子句)和其他“修饰”子句(这几乎不会改变输出)产生怀疑。换句话说,我怀疑我是否真的会通过重新排序子句来帮助优化器更快地运行(特别是在有索引的情况下),或者是否会是另一种过早优化的情况。优化者通常比我聪明。address.zip is not null and address.country == user.country
如果我们知道