mysql从入门到精通

入门基础篇


深入篇


mysql数据库实现多表查询

在sql语言中,用join实现表与表的关联,用on指定联合表的查询条件,如:

#实现三表联查,可以用table1.*,table2.*来排列表格显示信息的先后顺序
SELECT * FROM (`user` LEFT JOIN address ON `user`.id=address.user_id)  LEFT JOIN user_info ON `user`.id=user_info.id;

#三表查询指定的数据,多表查询为了区别各表中个字段,使用表名.字段名区别
SELECT 
`user`.id,`user`.user_name,`user`.`password`,
address.province,address.city,address.street,
address.street_number,user_info.age,user_info.gender,user_info.hobby,user_info.company 
FROM
(`user` LEFT JOIN address ON `user`.id=address.user_id)
 LEFT JOIN user_info ON `user`.id=`user_info`.id;

精通篇


sql优化

  1. 对于表的设计优化,在设置初期不仅要考虑到数据库的规范性,还有考虑到业务,以及性能的影响。比如从数据库规范的角度考虑可能需要分多个表,而在业务方面,庞大数据的联合查询相对于单表来说可能会慢很多,可能需要冗余几个字段。
  2. 对于sql的优化,特别是进行多表查询的时候,到底是采用INNER JOIN,还是LEFT JOIN,RIGHT JOIN亦或是OUTER JOIN,都需要通过性能测试得出结论。
  3. 在程序中调用的时候到底是采用懒加载还是非懒加载。
  4. 最后要用到数据的缓存了,或者在程序与数据库之间再加一层缓存,一般建议用好的数据库缓存
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值