最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

mysql分解连接的总结(来自于高性能MySQL以及自己网站性能优化)_MySQL

来源:动视网 责编:小采 时间:2020-11-09 19:16:24
文档

mysql分解连接的总结(来自于高性能MySQL以及自己网站性能优化)_MySQL

mysql分解连接的总结(来自于高性能MySQL以及自己网站性能优化)_MySQL:许多高性能的站点都用了分解连接技术,也就是把单个多表连接查询改成多个但表查询,然后在程序中合并数据,比如:select a.*,b.* from A a join B b on a.id = b.id可以替换为:select a.* from A;select b.* from B;然后再把数据
推荐度:
导读mysql分解连接的总结(来自于高性能MySQL以及自己网站性能优化)_MySQL:许多高性能的站点都用了分解连接技术,也就是把单个多表连接查询改成多个但表查询,然后在程序中合并数据,比如:select a.*,b.* from A a join B b on a.id = b.id可以替换为:select a.* from A;select b.* from B;然后再把数据


许多高性能的站点都用了“分解连接”技术,也就是把单个多表连接查询改成多个但表查询,然后在程序中合并数据,比如:

select a.*,b.* from A a join B b on a.id = b.id

可以替换为:

select a.* from A;

select b.* from B;

然后再把数据通过程序合并。

可能有些人认为这太浪费了,把一个查询语句变成两条查询语句或者更多的查询语句了,如果哪位猿类这样想了,那你就应该继续往下看了。

将连接查询重构为多表查询,总体有以下性能优势:

一,缓存的效率更高。许多应用程序都直接缓存了表。

二,对MyISAM表来说,每个表查询可以更有效的利用表锁,因为查询会锁住单个表较短时间,而不是把所有表长时间锁住。

三,在程序端应用连接,可以更方便的扩展数据库,把不同的表放在不同的服务器上面。

四,查询本身会更高效

五,可以减少多余的行访问。在应用程序端进行连接意味着每行数据只会访问一次,而连接从本质上来说是非正则化的,它会反复的访问同一行数据。基于同样的原因,这种重构方式可以减少网络流量和内存消耗。

那在什么时候在应用程序端进行连接效率更高呢?

一,可以缓存早期查询的大量数据

二,使用了多个MyISAM表

三,数据分布在不用的服务器上

四,对于大表,使用in()替换连接

五,一个连接引用了同一个表很多次

文档

mysql分解连接的总结(来自于高性能MySQL以及自己网站性能优化)_MySQL

mysql分解连接的总结(来自于高性能MySQL以及自己网站性能优化)_MySQL:许多高性能的站点都用了分解连接技术,也就是把单个多表连接查询改成多个但表查询,然后在程序中合并数据,比如:select a.*,b.* from A a join B b on a.id = b.id可以替换为:select a.* from A;select b.* from B;然后再把数据
推荐度:
标签: 网站 连接 程序
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top