欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

多表查询?大家一般怎么用的?效率问题真的需要考虑吗?

程序员文章站 2022-06-08 11:37:06
...
【Order】表(OrderID,OrderDate,CustomerID)
【Customer】表(CustomerID,CustomerName,CustomerAddr,CustomerCity)

能给个案例代码吗?如何实现关联查询?
比如我要查询属于 订单ID1的顾客信息。求tp代码

回复内容:

【Order】表(OrderID,OrderDate,CustomerID)
【Customer】表(CustomerID,CustomerName,CustomerAddr,CustomerCity)

能给个案例代码吗?如何实现关联查询?
比如我要查询属于 订单ID1的顾客信息。求tp代码

题主的问题提得比较模糊,没有给出两张表的数量级以及order表和cumstomer表的关系(是一对多还是多对多),这里给出几点建议吧(以mysql作为数据库软件,以下都此为基础):

  1. 多表查询的效率和所选用的数据库软件,表数据量级,业务的使用场景,查询方法等都有关系,在考虑效率之前,我们可以先问自己:在现有的业务场景以及表数据量级下,最简单的多表关联查询(join方式)效率是否已经满足需求?如果答案是肯定的话,就不要过度设计了。
  2. 当多表关联查询(join方式)效率无法满足业务需求时,常见的方法有:分成两次单表查询,优点:不会引起锁表和使用临时表,缺点:实现逻辑教复杂;order表冗余部分customer表数据,优点:多表查询问题简化为单表查询,缺点:数据有冗余以及更新逻辑复杂。