mysql使用from与join两表查询的区别总结
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,前言在mysql中,多表连接查询是很常见的需求,在使用多表查询时,可以from多个表,也可以使用join连接连个表这两种查询有什么区别?哪种查询的效率更高呢? 带着这些疑问,决定动手试试1.先在本地的
千家信息网最后更新 2024年11月30日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安全错误
数据库的锁怎样保障安全
linux网络安全学习
微信云数据库和mysql哪个好
梦幻西游目前有哪些服务器
龙芯服务器市场
外围业务数据库采用什么存储介质
阿里云服务器 挂载磁盘
服务器电源需要3c吗
discuz 回复数据库
数据库后台验证的重要性
数据库无法连接到用户名
数据库无关属性定义
昭通互联网科技哪家好
服务器安全日志特殊登录
信安世纪签名服务器api
怎么同时操作多个云服务器
服务器老是掉
网络技术相关论文有哪些
思维导图SQL数据库设计
网络安全工作干什么
服务器安全狗太敏感
世界上最大服务器厂商
数据库系统的安全框架划分为
网络安全规划征求意见稿
服务器老是掉
江苏推广网络技术费用是多少
小米8没有4g数据库
京东云用的什么数据库
甘肃牛大网络安全有限公司
配置邮箱连接服务器超时
强网杯网络安全大赛视频