sql – 有关数百万行的连接和表的问题
|
我必须创建2个表: 杂志(这些列有1000万行:id,标题,流派,印刷,价格) 作者(包含以下列的1.8亿行:id,name,magazine_id) . 所以,如果我想了解Motors Magazine的所有作者,我必须使用这个查询: SELECT * FROM Author,Magazine WHERE ( Author.magazine_id = Magazine.id ) AND ( genres = 'Motors' ) 这同样适用于“打印和价格”列. 为了避免与数百万行的表连接,我想使用这个表: 杂志(这一栏有1000万行:id,title,价格) 作者(此列有1.8亿行:id,magazine_id,打印,价格) . SELECT * FROM Author WHERE genres = 'Motors' 这是一个好方法吗? 我想让它跑得更快 我可以使用Postgresql或Mysql. 解决方法不,我不认为如您所描述的那样复制信息对于关系数据库来说是一个很好的设计.如果您更改给定杂志的类型或价格,则必须记住在重复信息的所有作者行中更改它.如果您有时忘记,最终会导致数据异常.你怎么知道哪一个是正确的? 这是relational database normalization的一个优点,用于表示冗余最少的信息,因此您不会出现异常. 为了让它跑得更快,我想你要做的是什么,你应该学习how to use indexes,特别是covering indexes. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- SQL Server 错误602,未能在sysindexes中找到数据
- mysql 5.6.26 winx64安装配置图文教程(一)
- sql – 在FROM子句和WHERE子句中连接有什么区别?
- sql-server-2005 – 基于另一个计算列的计算列?
- sql – Laravel Eloquent ORM“whereHas”通过表
- 除MSSQL数据库text字段中恶意脚本的删方法
- SQL SERVER分页存储过程(用存储过程实现数据库的
- Godaddy 导入导出MSSQL数据库的实现步骤
- .net – SQL0469 IN,OUT或INOUT对过程中的参数2无
- sql-server – 如何在数据库中查询空表
