join是什么
SQL 中 JOIN 子句用于把来自两个或多个表的行结合起来。
在实际的数据库应用中,经常需要从多个数据表中读取数据,这时就可以使用 SQL 语句中的连接(JOIN)子句,在两个或多个数据表中查询数据。
分类
- INNER JOIN(内连接):获取两个表中字段匹配关系的记录
- LEFT JOIN(左连接):获取左表中的所有记录
- RIGHT JOIN(右连接):与 LEFT JOIN 相反,用于获取右表中的所有记录
解释
1、数据库设计合理,不需要使用JOIN查询便可满足业务。
2、如果需要用JOIN实现,可以想想有没有替代JOIN的方案。
不建议使用JOIN和子查询,主要是性能问题。
好处
让缓存的效率更高
在应用层做关联,可以更容易对数据库进行拆分,更容易做到高性能和可扩展。
将查询分解后,执行单个查询可以减少锁的竞争。
查询本身的效率也可能会有所提升。
可以减少冗余记录的查询。
禁用了怎么办?
网友的答案:
上层应用去搞啊。
不使用数据库内存就使用应用内存,总得有个地方数据处理。
你要放到具体的环境里面去看这个问题。老版本MySQL性能不够,不得不用这种办法扭曲设计来满足性能要求。你换成Oracle一体机,就没这毛病了。
公司的大数据部门提供接口,直接从大数据部门那边获取数据