【发布时间】:2012-03-25 20:11:59
【问题描述】:
我们目前正在努力提高我们网站的查询性能,核心分层数据结构有 5 个级别,每个类型有大约 20 个字段。
level1: rarely added, updated infrequently, ~ 100 children
level2: rarely added, updated fairly infrequently, ~ 200 children
level3: added often, updated fairly often, ~ 1-50 children (average ~10)
level4: added often, updated quite often, ~1-50 children (average <10)
level5: added often, updated often (a single item might update once a second)
我们有一个单一的数据管道来执行所有这些更新和插入(即,我们可以完全控制进入的数据)。
对此我们需要做的查询是:
fetch single items from a level + parents
fetch a slice of items across a level (either by PK, or sometimes filtering criteria)
fetch multiple items from level3 and parts of their children (usually by complex criteria)
fetch level3 and all children
我们从这个数据源读取了很多数据,每秒数百次。我们需要执行的所有查询都是已知的和优化的,就像它们可以针对当前数据结构一样。
我们目前在 memcached 后面使用 MySQL 查询,并且只是做额外的查询来获取孩子/父母,我认为某种基于树或基于文档的数据库可能更合适。
我的问题是:对这些数据进行建模以提高读取性能的最佳方法是什么?
【问题讨论】:
标签: database database-design language-agnostic nosql database-schema