【发布时间】:2011-09-15 12:01:47
【问题描述】:
我是 MySQL 的数据库管理员和开发人员。我已经使用 MySQL 工作了几年。我最近学习并学习了 O'Reilly 高性能 MySQL 第 2 版,以提高我在 MySQL 高级特性、高性能和可扩展性方面的技能,因为我经常因缺乏对 MySQL 的高级知识而感到沮丧(在很大程度上,我还有)。
目前,我正在做一个模棱两可的网络项目。在这个项目中,我们将从一开始就有相当的内容和用户。我是数据库的设计者,这个数据库必须非常快(一些插入,但大多数更重要的是读取)。
我想在这里讨论这些要求:
- 会有几种物品
- 项目在common中有一些字段和关系
- 这些项目也有一些字段和关系特殊使它们彼此不同
- 必须将这些项目全部列出一起按公共字段或关系排序或过滤
- 项目也必须仅按类型列出(例如 item_specialA)
我有一些基本的设计疑问,希望您能帮助我决定并了解哪种设计方法更适合高性能 MySQL 数据库。
经典方法
下图显示了在数据库中使用头脑思维可能首先想到的经典方法:Database diagram
集中式方法
但也许我们可以通过一些或伪面向对象的范式来改进它,将公共项目和关系集中在一个公共项目表上。它对于列出所有类型的项目也很有用:Database diagram
- 各有优缺点?
- 看到之前的要求,您会选择哪种方法或应用哪些更改?
提前谢谢大家!!
【问题讨论】:
标签: mysql database performance database-design