1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > mysql分解连接的总结(来自于高性能MySQL以及自己网站性能优化)【MySQL】

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

时间:2021-02-15 03:21:00

相关推荐

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

数据库|mysql教程

mysql,程序,技术,网站

数据库-mysql教程

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

淘宝客自动采集网站源码,vscode以exe运行,ubuntu取消只读,tomcat部署netty,sqlite 数据库 引号,模版标签插件,微信app用的什么前端框架,爬虫中如何加cookie数据,php ¥,SEO外链渠道,eagent 代理分销网站源码,java网页连接qq聊天,idc网站模板lzw

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

教师网站源码,ubuntu文本界面中文,vba网络爬虫代码,php架,seo优化推送lzw

可以替换为:

zblog怎么添加源码,vscode调试无法输入,ubuntu启动方式,Tomcat怎么dump,sqlite承载数据量,用前端框架做毕业设计界面可以吗,怎么写点击广告的爬虫文案,获取域名ip php,seo的链接方式,手机网站默认全屏,纯html网页特效,QQ的标签模板在哪里lzw

select a.* from A;

select b.* from B;

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

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

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

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

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

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

四,查询本身会更高效

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

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

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

二,使用了多个MyISAM表

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

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。