在一个读量很大的MySQL数据库中,是否值得创建一个包含item_id和item_摘要(来自其他5个表的数据)的两列表?
在本例中,我正在从事一个涉及图书馆图书数据数据库的项目。我在这个数据库中有几个表:在一个读量很大的MySQL数据库中,是否值得创建一个包含item_id和item_摘要(来自其他5个表的数据)的两列表?,mysql,database,database-design,Mysql,Database,Database Design,在本例中,我正在从事一个涉及图书馆图书数据数据库的项目。我在这个数据库中有几个表: 书籍(书号、标题、描述、类型、语言、购买日期、章节、文字、书评数量) BookSearchData(图书id、全文可搜索的标题和说明) 类型(类型id到类型名称) 语言(语言id到语言名称) 签出数据(图书id、上次签出日期、签出用户id) 表构造的基本原理:我制作了单独的书籍和CheckoutData表,因为在我的设置中,我将频繁请求CheckoutData信息,并且除了CheckoutData字段中包含的
书籍(书号、标题、描述、类型、语言、购买日期、章节、文字、书评数量) BookSearchData(图书id、全文可搜索的标题和说明) 类型(类型id到类型名称) 语言(语言id到语言名称) 签出数据(图书id、上次签出日期、签出用户id)
表构造的基本原理:我制作了单独的书籍和CheckoutData表,因为在我的设置中,我将频繁请求CheckoutData信息,并且除了CheckoutData字段中包含的数据之外,不需要任何其他数据。希望这是一条正确的道路 然而,最频繁的数据请求将是图书数据摘要,它目前涉及所有表之间的联接。图书结果包括以下信息:
- 头衔
- 描述
- 流派名称
- 语言名称
- 购买日期
- 章节
- 言语
- 审查计数
- 退房了?(这取决于与书籍关联的CheckoutData表行中CheckOutUser id的值是否等于0)
因此,成吨的签出,以及成吨的图书摘要请求。我不喜欢两列设置,但主查询的非规范化版本(例如,创建一个视图,将所有5个表适当地连接起来,然后从那里插入另一个表)将有真正的好处 (我们说的是……每人几百美元 分钟) 每分钟60秒,每秒大约10次插入。这并不多,一个数据库每秒可以处理数千次插入
如果您有一个性能问题的查询,请开始使用查看发生了什么,以及为什么事情进展缓慢。@Tyler Eaves-我不完全确定您的意思。您是否介意详细介绍一下您的示例?您将构建一个包含所有连接表中的列的表,并在某个时间间隔或数据更改时对其进行更新。所以基本上你可以直接查询这个表,得到与连接相同的结果。哦,你是说一个表而不是我的五个表?对不起,误会了。现在我明白你第一句话的意思了。唯一的一件事是(我在我的原始帖子中忽略了强调这一点),签出数据将接收大量插入-非常频繁(我们说的是…每分钟几百次)。图书结果的请求率大致相同,每次可能调用10或20个图书条目。因此,在单表设置中,会有较高的读写速率。这会改变你的建议吗?谢谢啊…我只是在MySQL中查找“视图”。实际上我并不熟悉这个术语,所以我认为它是指由一些连接生成的临时表。现在我明白你的真正意思了。是的,这肯定会改变一切。在这种情况下,我只能等待,看看这是否真的是一个性能问题。谢谢。我想我已经大大低估了数据库的性能,哈哈。我担心在混合中引入太多连接会如何影响性能,我正在尝试进行预优化…可能没有我想象的那么必要。