man*_*h_s 10 mysql sql database
这个MySQL查询的复杂性是什么?
SELECT COUNT(*) FROM MyTable;
Run Code Online (Sandbox Code Playgroud)
是否将表中的条目数存储在某处并在每次插入或删除行时更新?如果是这种情况,则复杂性应为O(1).
Mar*_*ers 10
这取决于存储引擎.
SELECT COUNT(*) FROM yourtable是操作O(1).它只需要读取这个值.从手册:
InnoDB不保留表中的内部行数.(实际上,由于多版本化,这会有些复杂.)要处理SELECT COUNT(*) FROM t语句,InnoDB必须扫描表的索引,如果索引不完全在缓冲池中,则需要一些时间.如果您的表不经常更改,使用MySQL查询缓存是一个很好的解决方案.要快速计数,您必须使用自己创建的计数器表,并让应用程序根据插入和删除更新它.SHOW TABLE STATUS如果近似行数足够,也可以使用.请参见第13.2.13.1节"InnoDB性能调整技巧 ".
| 归档时间: |
|
| 查看次数: |
2925 次 |
| 最近记录: |