2012-04-26 68 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