千家信息网

mysql使用from与join两表查询的区别总结

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,前言在mysql中,多表连接查询是很常见的需求,在使用多表查询时,可以from多个表,也可以使用join连接连个表这两种查询有什么区别?哪种查询的效率更高呢? 带着这些疑问,决定动手试试1.先在本地的
千家信息网最后更新 2025年02月02日mysql使用from与join两表查询的区别总结

前言

在mysql中,多表连接查询是很常见的需求,在使用多表查询时,可以from多个表,也可以使用join连接连个表

这两种查询有什么区别?哪种查询的效率更高呢? 带着这些疑问,决定动手试试

1.先在本地的mysql上先建两个表one和two

one表

CREATE TABLE `one` ( `id` int(0) NOT NULL AUTO_INCREMENT, `one` varchar(100) NOT NULL, PRIMARY KEY (`id`)) ENGINE = InnoDB CHARACTER SET = utf8;

two表

CREATE TABLE `two` ( `id` int(0) NOT NULL AUTO_INCREMENT, `two` varchar(100) NOT NULL, PRIMARY KEY (`id`)) ENGINE = InnoDB CHARACTER SET = utf8;

先随便插入几条数据,查询看一下;

select one.id,one.one,two.id,two.two from one,two where one.id=two.id;

select one.id,one.one,two.id,two.two from one join two on one.id=two.id;

对比这两次的查询,查询时间几乎没有区别,查看sql运行分析,也没有区别

为了突出两种查询的性能差异,往one表中插入100w条数据,往two表中插入10w条数据,在大量数据面前,一丝一毫的差别也会被无限放大;这时候在来比较一下差异

先使用python往数据库中插入数据,为啥用python,因为python写起了简单

上代码

import pymysqldb = pymysql.connect("127.0.0.1", 'root', "123456", "bruce")cursor = db.cursor()sql = "INSERT INTO one (one) values (%s)"for i in range(1000000): cursor.executemany(sql, ['one' + str(i)]) if i % 10000 == 0: db.commit() print(str(i) + '次 commit')db.commit()print('insert one ok')sql2 = "INSERT INTO two (two) values (%s)"for i in range(100000): cursor.executemany(sql2, ['two' + str(i)]) if i % 10000 == 0: db.commit() print(str(i) + '次 commit')db.commit()print('insert two ok')

耐心等待一会,插入需要一些时间;

等数据插入完成,来查询一些看看

先使用FROM两个表查询

select one.id,one.one,two.id,two.two from one,two where one.id=two.id;

用时大约20.49;

再用JOIN查询看一下

select one.id,one.one,two.id,two.two from one join two on one.id=two.id;

用时19.45,在10w条数据中,1秒的误差并不算大,

查看一下使用id作为条件约束时的查询

查询时间没有差别
再看一下sql执行分析

结果还是一样的

总结

在mysql中使用FROM查询多表和使用JOIN连接(LEFT JOIN,RIGHT JOIN除外),查询结果,查询效率是一样的

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

查询 数据 时间 两个 内容 差别 差异 效率 疑问 结果 分析 学习 耐心 一丝一毫 上代 价值 前言 多个 就是 常见 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库技术和大数据工资 网络安全技术的应用 服务器架设在国外 灰色视频 随着信息与网络技术的影响 网络数据库中的数据寿命 网络安全知识存在的不足 抽调影响服务器 宝山区营销软件开发参考价格 郎溪自动软件开发服务参考价格 郑州正规软件开发费用是多少 荣耀的后台服务器在哪 软件开发适合女孩子学吗 网络安全渗透查询软件 中国网络安全厂商竞争分析 市场营销和计算机网络技术薪资 雷财互联网科技 谷歌服务器代理 西安比亚迪搞软件开发有前途吗 TTD数据库搜集成分靶点 魔力宝贝无法连接服务器怎么办 java控制数据库建立连接 2b2t服务器承载能力 基于mvc的软件开发 云丁网络技术有限公司深圳分公司 土地调查数据库 机房服务器配置方案 微信云托管操作云开发数据库 rust服务器出租 中专网络技术专业可以考哪些证书 哪个数据库以人文和社科资料为主
0