Mysql 使用超类表在数据库中建模继承的性能
我的问题,实际上是关于我的概念/想法的可用性/性能的问题: 设置: 在我的数据库中,两个(实际上是三个)字段总是不断地重新出现:Mysql 使用超类表在数据库中建模继承的性能,mysql,performance,database-design,database-performance,Mysql,Performance,Database Design,Database Performance,我的问题,实际上是关于我的概念/想法的可用性/性能的问题: 设置: 在我的数据库中,两个(实际上是三个)字段总是不断地重新出现:title和description(和created)。标题始终是VARCHAR(100),描述始终是TEXT 现在,为了简化这些表,我考虑了一些事情(并以这种方式对其进行了更改):创建一个名为content、id、title、description和created的表,并始终从所有其他字段中指向该表,这不是更有用吗 例如: 表选项卡具有id,键和内容id(而不是标题,
title
和description
(和created
)。标题始终是VARCHAR(100)
,描述始终是TEXT
现在,为了简化这些表,我考虑了一些事情(并以这种方式对其进行了更改):创建一个名为content
、id、title
、description
和created
的表,并始终从所有其他字段中指向该表,这不是更有用吗
例如:
表选项卡
具有id
,键
和内容id
(而不是标题
,说明
和已创建
)
表章节有id
,故事id
和内容id
(“”)
等
问题:
到目前为止一切正常,但我唯一担心的是性能。我这样做会遇到瓶颈吗,还是会没事?我现在有大约23个不同的表指向内容,其中一些表将包含用户定义的内容(期刊、评论等)-因此内容中的条目数量可能会相当高
这种设置是否更好,或者等同于在每个单独的表中都有标题
和说明
编辑:如果结果是一个坏主意,那么除了将某些字段(如title
和description
复制到~25个表中)之外,还有什么替代方法
提前感谢您的帮助 >P>你的问题没有明确的答案,因为它主要取决于表的使用,所以请考虑以下几点:
您需要多久写入一次表?如果多个插入/更新的数据位于一个大表中,则可能会导致问题,因为所有写入操作都将针对同一个表
您多久需要一次存储在表中的数据以及常用数据?如果您选择的大多数时间都不需要标题
或说明
,则可以。如果您每次都需要title
,那么请考虑您必须始终使用公共数据连接表
如何管理数据库架构?编写一些简单的工具来创建/检查表结构会更容易。在MySQL中,您可以使用descripe table\u name
或通过INFORMATION\u SCHEMA
数据库轻松访问数据字典
我正在处理700多个表的项目,其中一些字段必须出现在每个表中(记录是在什么时候创建的,上次修改的时间戳)。我们有一个简单的脚本可以帮助实现这一点,因为将所有数据放在一个表中将是灾难性的。对我来说这听起来是一个很好的方法。谢谢,我决定将数据表拆分,并将这些列分别添加到每个表中。根据您的问题-更多的初始工作,但最终可能会更好(更少的连接等)