Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 性能方面是一张大桌子还是两张小桌子(一对一)?_Mysql_Database_Performance_Rdbms - Fatal编程技术网

Mysql 性能方面是一张大桌子还是两张小桌子(一对一)?

Mysql 性能方面是一张大桌子还是两张小桌子(一对一)?,mysql,database,performance,rdbms,Mysql,Database,Performance,Rdbms,优化读取查询:最好将数据一对一地放入两个表中,或者只创建一个包含更多列的表 案例1 表:电影资讯 评级 演员 董事 描述 海报 表:电影 身份证件 标题 字幕 网址 电影资讯 案例2 表:电影 身份证件 标题 字幕 网址 评级 演员 董事 描述 海报 哪种数据划分更强大的读取查询?实际性能取决于表的实际大小,但经验法则是: 在这个特殊的例子中,非规范化一个表而不是两个表 始终提高读取性能,因为您不需要加入 关系 当然,当使用一对一联接时,联接关系可以由数据库系统预先计算,但这是另一回事 简单地说

优化读取查询:最好将数据一对一地放入两个表中,或者只创建一个包含更多列的表

案例1

表:电影资讯

评级 演员 董事 描述 海报 表:电影

身份证件 标题 字幕 网址 电影资讯 案例2

表:电影

身份证件 标题 字幕 网址 评级 演员 董事 描述 海报
哪种数据划分更强大的读取查询?

实际性能取决于表的实际大小,但经验法则是:

在这个特殊的例子中,非规范化一个表而不是两个表 始终提高读取性能,因为您不需要加入 关系

当然,当使用一对一联接时,联接关系可以由数据库系统预先计算,但这是另一回事


简单地说,一张表更好。

你最需要阅读什么?为什么你认为拆分会有帮助?如果你选择选项1,演员与导演或海报有关?如果你选择选项2,那么每部电影只能有一张海报?@oded抱歉,我认为这应该更规范化,但这是我的观点。你是说电影和演员或海报之间存在1:1的关系。注意复数:s。有多个演员,多个不同的海报和可能!《西区故事》的多位不同导演:罗伯特·怀斯和杰罗姆·罗宾斯。仅与一部电影相关的电影信息不应在单独的表中。案例1不正确。但与多部不同电影(如演员)相关的数据应具有不同的表。IMHO…@user1028100您应该了解数据库规范化/优化。对于您的问题,1个表与2个表的结果几乎相同,但如果您希望好运的话。所有东西都有一张桌子不是你问题的解决方案。错误:一张桌子设计=糟糕。在本例中,如果有25名演员使用一个表,您将如何操作?海报也一样吗?字幕一个好的规范化数据库模式在正确地进行优化和索引时总是表现良好。我经营一家托管公司,我的4个最大的客户拥有大约10TB的数据,其中一个客户在1秒内运行一个查询,有4个左连接,每个表有超过3亿行。也许1个表比2个表快,比如快0.01秒,但数据的可维护性和效率,一点也不高