NeD*_*ark 2 mysql database performance innodb
在一个包含5百万行的表中,SELECT count(*) FROM table在MyISAM中会立即显示,但在InnoDB中需要几秒钟.
为什么这样?为什么他们不像MyISAM那样在InnoDB中优化计数?
谢谢.
这是实施方面的差异.InnoDB支持事务,因此它必须根据事务一致的表视图来计算行数.由于MyISAM不支持ACID属性,如果插入了一行,则会为每个人插入一行,因此它只能更新它在存储引擎中保留的计数.
小智 6
MyIsam在某处存储了行数,因此查询几乎是即时的,InnoDB必须扫描表以获得完整计数.如果你有条件计数(例如:"SELECT COUNT(*)WHERE CUSTOMER = 4")两者都必须进行扫描,这种情况没有太大区别
资源:
http://www.mysqlperformanceblog.com/2006/12/01/count-for-innodb-tables/
| 归档时间: |
|
| 查看次数: |
917 次 |
| 最近记录: |