gpt4 book ai didi

mysql - 组合表或单独表

转载 作者:行者123 更新时间:2023-11-29 00:25:09 25 4
gpt4 key购买 nike

我有一个当前的数据库结构,似乎为了索引目的拆分了一些数据。主 tickets 表有更多“精简”字段,如外键、整数和日期,而 tickets_info 表有可能更大的数据,如文本字段和 blob。这是继续的好主意,还是我应该合并表格?

例如,当前结构看起来像这样(假设与索引上的外键存在一对一关系):

`tickets`
--------------------------------------------
id | customer | vendor | opened
--------------------------------------------
1 | 29 | 0 | 2013-10-09 12:49:04

`tickets_info`
--------------------------------------------
id | description | more_notes
--------------------------------------------
1 | This thing is broken! | Even longer...

我的应用程序执行的 SELECT 次数多于 INSERTs/UPDATE 次数,因此我可以看到在为概览页面(每页 250 多个结果列表)同时查询大量工单列表时拆分的理论优势。然后,更大的详细信息将在仅显示一张票及其详细信息的页面上使用简单的 JOIN(在外键上的其他几个 JOIN 中)。

这些表目前是 MyISAM,但如果有任何不同,我将在重组它们后将它们转换为 InnoDB。 tickets 表中目前大约有 33 列,tickets_info 表中有 4 列; tickets_info 表可能有更多的列,具体取决于安装(我已经实现的类似于 PHPBBv3 的“自定义字段”)。

最佳答案

我觉得这个设计不错。门票表不仅用于显示单张门票信息,还用于计算(即特定日期售出的门票总数)和其他分析(该供应商售出多少门票?)。

添加 tickets_info 会增加 tickets 表的大小,没有任何好处,但有增加对 tickets 表的访问时间的风险。我认为 tickets 表上的良好索引应该可以保证您的安全,但 MySql 不是列式数据库,因此我预计具有大 varchar 或 blog 字段的行需要更多资源。

此外,如果您将 ticket_info 用于单票查询,我认为您在查询该表时已经获得了良好的性能。

所以我的建议是保持原样:)

关于mysql - 组合表或单独表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19283743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com