2012-04-26 71 views
1

我有一个counts表,包含类似(约14计列)列:最佳引擎计数表

user_id 
friends_count 
photo_count 
video_count 
blogs_count 

每当用户添加照片或朋友这表得到更新。

我与InnoDB引擎去,因为它是最好有行锁定,但同时也有在此表中读取的好一些。对于每个用户,当他们看到其他用户的配置文件,或者甚至用户侧菜单都包含所有这些计数。

该款发动机是最适合大多数写入和读取最喜欢这样?

+2

你能精确以下:你** **需要客户端从表中只读了最新的数据?你**是否要求**,表格数据在任何给定的时间点匹配**精确**对象计数(而不是“他们最终会匹配一段时间”)? – Romain 2012-04-26 11:14:01

+0

你确定,你想保持这个数据翻倍?通常,依靠索引是非常快的(至少在Oracle中,不确定MySQL)。写入这么多次的开销可能超过了'SELECT COUNT(*)FROM tbl WHERE indexed_field = index_value'的读取时间... – 2012-04-26 11:14:09

+0

您是否试过阅读http://dev.mysql.com/doc/refman/5.0/ en/storage-engines.html – Shirish11 2012-04-26 11:21:18

回答

0

通用的MySQL/MariaDB的发动机

  1. XtraDB是多数人的最佳选择案例。它是InnoDB性能增强的分支,是MariaDB的默认引擎,直到MariaDB 10.1。

  2. 的InnoDB是一个很好的,成交一般存储引擎。它是默认的MySQL存储引擎和默认的MariaDB 10.2存储引擎,但在早期版本中,XtraDB是InnoDB性能增强的分支,通常是首选。

  3. 咏叹调,MariaDB的对MyISAM的更现代的改善,具有占地面积小,并允许系统之间轻松复制。

  4. 的MyISAM具有占地面积小,并允许系统之间轻松复制。 MyISAM是MySQL最古老的存储引擎。除了遗留目的之外,通常没有什么理由使用它。亚里亚是MariaDB更现代化的改进。

信息来源:MariaDB Engines