首页 >

mysql单个表查询,多表连接查询和多次单表查询哪个效率高 – 数据库 – 前端,mysql复合索引的原理

mysql 查看用户的密码,centos 7.2 重启mysql,mysql用什么替代join,mysql 当前时间函数是,mysql集群大小,mysql复合索引的原理mysql单个表查询,多表连接查询和多次单表查询哪个效率高 - 数据库 - 前端,mysql复合索引的原理两种查询方式的比较

偶这里有一个数据库,大家拿里面的客户表和地区表做两种查询的对比。用户表数据是31万条,地区表3511条。

1. 使用连表查询成都市的客户总数

2.使用多次单表查询客户总数

可以看到,查询出来的结果都是一样,但是第一种的连表查询用了0.67秒中,而第二种多次单表查询一共用时0.14秒。这个对比已经是很明显了吧。

虽然这只是一个很简单的例子,但是对比结果是非常明显的。在实际应用中可能会更复杂、数据更多,如果还使用连表查询时非常慢的,而且还消耗服务器资源。

所以现在在很多大了公司明确要求禁止使用join查询,比如阿里、腾讯就明确规定禁用三表以上的join查询。

总结一下,单表查询的优点

1. 多次单表查询,让缓存的效率更高。

许多应用程序可以方便地缓存单表查询对应的结果对象。另外对于MySQL的查询缓存来说,如果关联中的某个表发生了变化,那么就无法使用查询缓存了,而拆分后,如果某个表很少改变,那么基于该表的查询就可以重复利用查询缓存结果了。

2. 将查询分解后,执行单个查询可以减少锁的竞争。

3. 在应用层做关联,更容易对数据库进行拆分,更容易做到高性能和可扩展。

4. 查询本身效率也可能会有所提升。

5. 可以减少冗余记录的查询。

6. 在应用中实现了哈希关联,而不是使用MySQL的嵌套环关联,某些场景哈希关联的效率更高很多。

7. 单表查询有利于后期数据量大了分库分表,如果联合查询的话,一旦分库,原来的sql都需要改动。

8. 很多大公司明确规定禁用join,因为数据量大的时候查询确实很慢

所以在数据量不大的情况下,两种方式的查询都没什么明显的差别,使用多表连接查询更方便。但是在数据量足够大几十万、几百万甚至上亿的数据,或者在一些高并发、高性能的应用中,一般建议使用单表查询。

如果觉得笨猫的回答对你有用,点个关注,非常感谢。

mysql 查看用户的密码,centos 7.2 重启mysql,mysql用什么替代join,mysql 当前时间函数是,mysql集群大小,mysql复合索引的原理mysql单个表查询,多表连接查询和多次单表查询哪个效率高 - 数据库 - 前端,mysql复合索引的原理


mysql单个表查询,多表连接查询和多次单表查询哪个效率高 - 数据库 - 前端,mysql复合索引的原理
  • mybatis使用like参数怎么写 - 数据库 - 前端|
  • mybatis使用like参数怎么写 - 数据库 - 前端| | mybatis使用like参数怎么写 - 数据库 - 前端| ...

    mysql单个表查询,多表连接查询和多次单表查询哪个效率高 - 数据库 - 前端,mysql复合索引的原理
  • 每天进步一点点――Linux下的磁盘缓存 - 数据库 - 前端|
  • 每天进步一点点――Linux下的磁盘缓存 - 数据库 - 前端| | 每天进步一点点――Linux下的磁盘缓存 - 数据库 - 前端| ...

    mysql单个表查询,多表连接查询和多次单表查询哪个效率高 - 数据库 - 前端,mysql复合索引的原理
  • 提示没有office办公软件如何解决 - 数据库 - 前端|
  • 提示没有office办公软件如何解决 - 数据库 - 前端| | 提示没有office办公软件如何解决 - 数据库 - 前端| ...