mysql - 是否可以使用 MySQL 的模型/架构进行复杂查询?

标签 mysql database-design

复杂查询是指必须使用至少 2 个连接的查询。假设我已经构建了数据库的架构/模型。现在假设我有 users.user_id = 5我要找logins.lastlogin , groups.groupname ,和history.user_weight 。我不会编写任何连接 SQL 语句,所有这些语句都将通过数据库的模式/模型在后台连接。 MySQL 可以吗?

最佳答案

如果您不喜欢“ View ”想法 - 顺便说一句,这是理想的 - 您可以随时模仿 Oracle-materialized views布兰科提到这样做:

在您要加入的每个表、users登录历史;这将更新名为 lgh 的新第五个表(示例)

因此,您可以使用这个新的 lgh 表来执行上面您想要的查询。与实际 View 相比,它可能会减少扫描的行数,但现在每次原始 4 个表中任何一个表中的数据发生更改时都会产生开销。根据您使用这个新 lgh 表与更新其他 4 个表的频率,您可能会看到一些性能改进。

免责声明:

  • 我不赞成这种解决方法,这只是针对您的问题的替代建议。
  • 您确实应该考虑向原始 4 个表添加更多索引,甚至可以为该连接查询中使用的每一列添加更多索引。
  • 这可能类似于“缓存”......但不完全是。

关于mysql - 是否可以使用 MySQL 的模型/架构进行复杂查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12191915/

相关文章:

php - 我想在一个单独的列中插入多封电子邮件,并用 # 分隔

php - 如何在php中从sql查询中检索单个值

database - 如何在数据库中表示二维数据矩阵

mysql - 建模 "one to one or two"关系

php - MySQL嵌套资源(透视表)权限查看/更新/管理

database-design - 数据库元数据命名风格指南

php - PHP 的密码恢复邮件不起作用

php - 为什么 mysql_real_escape_string 不起作用?

数据库设计汽车模型/汽车分类

mysql - 将一些数据从 MySQL 表的一列移动到另一列