记一次MySQL优化,内连接与左连接

268次阅读
没有评论

当前数据库版本:MySQL5.5,存储引擎:MyISAM

SQL 左链接

SELECT COUNT(*) AS tp_count FROM `cmf_order` `o` LEFT JOIN `cmf_order_device_goods` `od` ON `o`.`order_id`=`od`.`order_id` LEFT JOIN `cmf_user_machine` `um` ON `o`.`mid`=`um`.`id` LIMIT 1;

查询数据总条数:2964142 条,查询时间 7.344 秒

记一次 MySQL 优化,内连接与左连接 SQL 内连接

SELECT COUNT(*) AS tp_count FROM `cmf_order` `o` INNER JOIN `cmf_order_device_goods` `od` ON `o`.`order_id`=`od`.`order_id` INNER JOIN `cmf_user_machine` `um` ON `o`.`mid`=`um`.`id` LIMIT 1;

查询数据总条数:2960406,查询时间 23.627 秒

记一次 MySQL 优化,内连接与左连接

单表 count 查询

SQL:SELECT COUNT(*) FROM `cmf_order`;

查询数据总条数:2964142,查询时间 0.028 秒

记一次 MySQL 优化,内连接与左连接

基本结论:

1、左连接(右连接)的查询效率高于内连接;

2、聚合查询在没有条件限制的情况下会走全表扫描;

3、 左连接(右连接)查询结果的数据条数等于主表的数量,内连接的查询结果取得是内连接多张数据表的交集,实际数据量可能会小于预期的数据量;

4、聚合查询单表操作效率高于连表查询。

正文完
有偿技术支持加微信
post-qrcode
 
评论(没有评论)
验证码