多对多数据库表:最佳性能实践

Hacktisch

我对我的MYSQL数据库设计的性能有疑问。

表A有很多记录,比如说一百万,表B也有一百万。还有另一个表C,其中A的每个记录id连接到B中的每一行,并且此连接具有附加值1或0。因此从功能上讲,A中的每个记录都有一个布尔向量,其中B包含B的“变量”向量,值为1或0。在底部的图片中以图形方式对其进行了详细说明。

表C将具有很多写和读操作(从A记录中选择所有值),因此该表非常活跃。而表C确实很长,是一百万行乘一百万行的结果。

  • 我的第一个问题是,表的长度会带来性能问题吗?数据库需要非常快。
  • 我的第二个问题是,如果设计不好,是否有更好的设计可以实现我想要的。例如,我可以考虑将每个A记录的整个B向量存储在A中每一行的内部。那么就不需要表C了。但这会使选择,阅读和写作变得更加困难。

桌子

托斯滕·凯特纳(Thorsten Kettner)

表格设计很好,应该不会有问题,因为您通过应该索引的ID访问记录。根据您的典型查询,你也应该考虑增加综合指数(c(a_id,b_id)c(a_id,value)c(b_id,value)c(a_id,b_id,value))。

但是,由于只有两种状态,0和1,您可以决定只存储其中一种。即,如果仅存储所有状态1记录,则不在表中的所有对都具有状态0,然后隐式表示。当状态分布不均时(例如,90%的记录的状态为0,而只有10%的状态为1),或者您通常仅访问其中一个状态(例如,您始终查找1),这尤其有用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

处理从云数据库到Listview的许多数据的最佳实践?

来自分类Dev

多数据库查询接收性能

来自分类Dev

数据库数据过滤最佳实践

来自分类Dev

访问远程数据库-最佳实践

来自分类Dev

数据库公开:最佳实践

来自分类Dev

访问远程数据库-最佳实践

来自分类Dev

什么是数据库连接的最佳实践

来自分类Dev

数据库命名,最佳实践

来自分类Dev

插入到多对多数据库?

来自分类Dev

多对多数据库phpmyadmin

来自分类Dev

插入到多对多数据库?

来自分类Dev

Rails:多对多数据库设计

来自分类Dev

设计此方法的最佳实践:C#中的枚举或单独的数据库表

来自分类Dev

设计此方法的最佳实践:C#中的枚举或单独的数据库表

来自分类Dev

最佳实践 Joomla 多语言国家列表数据库表?

来自分类Dev

实体框架代码首先不会创建多对多数据库表

来自分类Dev

如何提高许多数据库插入的性能?

来自分类Dev

数据库数据重新排列/转换的最佳实践?

来自分类Dev

在多租户多数据库环境中提供对多个租户的集中访问的最佳措施是什么?

来自分类Dev

MVC 4中数据库方法的最佳实践

来自分类Dev

连接/断开数据库的最佳实践是什么?

来自分类Dev

使用null和数据库时的Golang“最佳”实践

来自分类Dev

生产数据库架构更新的最佳实践是什么?

来自分类Dev

Yii2数据库架构最佳实践

来自分类Dev

MySQL数据库中的HTML-最佳实践

来自分类Dev

设计面向文档的数据库的记录键-最佳实践

来自分类Dev

JDBC /数据库单元测试的最佳实践

来自分类Dev

存储或传递数据库连接的Datomic最佳实践

来自分类Dev

具有多个相似实体的数据库最佳实践

Related 相关文章

热门标签

归档