dw怎么做phpcms网站,关于网络营销的论文,网站无法被百度收录,wordpress 主题小工具MySQL 为什么不推荐使用JOIN
MySQL 不推荐使用 JOIN 的说法是过于简化的。实际上#xff0c;在某些情况下使用 JOIN 是非常有用的#xff0c;但在其他情况下可能会带来性能问题、复杂性和可维护性问题以及重复数据等问题。
首先我们需要知道JOIN语句是用于将多个表中的数据…MySQL 为什么不推荐使用JOIN
MySQL 不推荐使用 JOIN 的说法是过于简化的。实际上在某些情况下使用 JOIN 是非常有用的但在其他情况下可能会带来性能问题、复杂性和可维护性问题以及重复数据等问题。
首先我们需要知道JOIN语句是用于将多个表中的数据进行联合起来的操作。
JOIN 本质就是各个表直接数据循环匹配,嵌套查询。也就是从主表驱动表中取出一条数据遍历从表被驱动表将匹配到的数据放到result。以次类推主表中的每一条记录与从表记录进行判断。
在关联查询的时候,那个表作为主表驱动表,那个表作为从表被驱动表,不是那个表在前边那个表就是主表,而是MySQL优化器决定谁是主表除了STRAIGHT_JOIN谁是从表优化器会通过很多方面来决定例如索引straight_join 是内连接查询 是那个表在前边 那个表就是主表,。使用straight_join一定要慎重因为部分情况下人为指定的执行顺序并不一定会比优化引擎要靠谱。
比如A表 inner join B表查询 create table a(f1 int,f2 int ,INDEX(f1));
create table b(f1 int,f2 int,index(f2));内连接
EXPLAIN select * from a inner join b on a.f1b.f1;#b作为主表
EXPLAIN select * from a inner join b on a.f1b.f1 where a.f1 1;#a作为主表
EXPLAIN select * from a inner join b on a.f1b.f1 where b.f2 1;#b作为主表在小数据量的情况下可以使用JOIN 联合查询,一旦数据量很大效率就很难保证了。
分布式的分库分表。这种时候是不建议跨库join的。目前mysql的分布式中间件跨库join表现不良。
数据库是最底层的瓶颈往往是数据库。建议数据库只是作为数据store(存储)的工具而不要添加业务上去
MySQL 为什么不推荐子查询
MySQL子查询效率太差执行子查询时MYSQL需要创建临时表查询完毕后再删除这些临时表所以子查询的速度会受到一定的影响这里多了一个创建和销毁临时表的过程。