1、分解连接
分解连接的好处,
1、可以提高缓存的效率。
2、对于MyIsam表来说,每个表的一个查询可以更有效利用表锁。因为查询会锁住单个表较短的时间。
3、在应用程序端进行连接,可以把不同的表放在不同的库中。
4 、可以减少多余行的访问。在应用程序进行连接意味着对每行数据只会访问一次,而连接从本质上说是非正则化的,它会反复地访问同一行数据。基于同样的原因,这种重构方式可以减少网络流量和内存消耗。
5、手工执行了hash连接,而不是mysql内部执行连接操作时采用的循环嵌套算法,哈希连接效率更高。
小结:什么时候应该在程序端进行连接更高
1、可以缓存早期查询的大量数据
2、使用了多个myisam表。
3、数据分布在不同的服务器上
4、对于大表使用IN 替换连接
5、一个连接引用了同一个表很多次