的一个折衷互联网工程开发效率和系统性能

的一个折衷互联网工程开发效率和系统性能

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

问题起源


    今天,leader看了我写的代码。提了一个建议。

我在写p2p业务系统的时候,数据库底层使用了“关联查询,left-join”,leader认为这样性能不好。

他建议,不使用关联查询,每次都是单表查询,假设须要查询关联数据。添加一次查询,然后再把两次甚至多次的数据合并。


即通过程序而不是sql,合并数据。

   他的思考逻辑:
   他之前在淘宝工作过。web系统对性能要求比較高。Web前端等程序能够使用分布式,量再大,多台应用server就能够应付了。而数据库,最多也就是主从结构。非常easy成为瓶颈。

使用关联查询,比較耗费性能,并且訪问量大的时候,不够稳定。
   他的观点:数据库的核心作用是,提供存储和查询服务,left join等高级查询不是数据库的强项。假设仅仅是用单表。每次都非常快,并且有保障,出错的可能性比关联查询小非常多,并且单表查询easy做缓存,建索引。


  我的思考逻辑:
   我写的程序基本不考虑性能问题。由于我还没有遇到过性能瓶颈问题,可能是我參与的大多数小訪问量的业务系统,而非海量普通消费者用户的大型互联网系统。 
   敲代码,最主要的原则是,保证按时交付、质量过关、可读性强、easy维护。

   假设自己去合并多次查询的数据,要多写不少Java代码,显然会添加工作量。


  取舍
  我们正在开发的是p2p系统,假设客户买我们的系统。运营得比較好的话,量也会比較大。为了应对潜在流量大的问题。开发还是须要注意性能。所以,我须要重构代码。这个合并数据的逻辑不难,用node.js敲代码的时候,写过。把公共的合并逻辑或者方法。总结下来或写成工具方法。花的时间也能够少点。

  一点实际经验
  从过去的开发经验来看。我也非常仅仅想写“单表查询的sql语句” 。非常easy写。更关键的是。针对一张表的CRUD操作,用Hibernate和Mybatis等数据库框架,能够非常easy实现。多张表的CRUD API非常难写。

  扩展话题
象性能与效率的取舍等问题 ,在我看来都是一个“标准”或者“最佳实践”的问题。

我想把这5年多学习Web开发的经验,总结下,比方前端用哪些技术、后端Java用哪些框架、管理代码、打包部署 、备份、站点监測。


 为什么想这么做呢?反复的问题,标准话之后。工作会轻松很多。
此外。尽管作为一个技术人员,我还是想通过敲代码搞点外快的。 假设常见的功能,我都能够非常快地实现。那么在同样的条件下。我能够实现很多其它的系统,仅仅要有一个能够卖出去,比方5万一套。也是非常多的。

这些都是我的一点想法,希望有一天能够实现,哪怕仅仅是一小部分。 

小雷FansUnion-博学的互联网技术工作者
2014年10月30日
湖北武汉 

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117436.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • ElasticSearch 2.0以后的改动导致旧的资料和书籍需要订正的部分

    ElasticSearch 2.0以后的改动导致旧的资料和书籍需要订正的部分

  • 大数据分析应用领域有哪些[通俗易懂]

    大数据分析应用领域有哪些[通俗易懂]  软件和服务的大数据分析市场收入预计将从2018年的$42B增长到2027年的$103B,复合年增长率(CAGR)为10.48%。这就是为什么,大数据分析认证是业内最全神贯注的技能之一。在这个“大数据分析应用领域”文章中,我将带您进入各个行业领域,在这里我将解释大数据分析如何使它们发生革命性变化。  大数据分析应用  大数据分析应用程序的主要目标是通过分析大量数据来帮助公司做出更具信息量的业务决策。它可能包括Web服务器日志,Internet点击流数据,社交媒体内容和活动报告,来自客户电子邮

  • Matlab 2016a 安装包及破解教程

    Matlab 2016a 安装包及破解教程Matlab-Matlab2016a安装破解教程本方法只是研究破解技术所用。如果要使用软件还是要用正版的。Matlab2016a安装包及破解教程百度云分享链接: 链接:https://pan.baidu.com/s/1i6BgD8p    密码:17gg Matlab安装教程: 1、下载文件,得到R2016a_win64.part1.rar、R2016a_…

  • C# 连接SFTP

    C# 连接SFTPC#连接SFTP网上学习到C#连接SFTP方式,整理了一下,文章结尾处为具体的调用方式以及密钥文件的转换。SFTPHelper.c文件:usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Collections.Specialized;usingSystem.Configuration;usingSystem.Linq;usingSystem.Text;using

  • 将图片转换为Base64编码字符串、解析Base64编码字符串后生成图片「建议收藏」

    将图片转换为Base64编码字符串、解析Base64编码字符串后生成图片「建议收藏」代码publicclassTest{publicstaticvoidmain(String[]args){//测试1:将图片转换成base64编码字符串Stringcode=imgToCode(“C:\\Users\\mingming\\Pictures\\Screenshots\\1.png”);System.out.println(“生成的base64编码字符串是:”+code);//测试

  • NFS修改2049端口号

    NFS修改2049端口号欢迎大家搜素微信公众号“东面而视”,分项技术及讨论技术《什么是NFS》   就是通过网络共享目录,让网络上的其他服务器能够挂载访问共享目录内的数据。(一般共享视频,图片等静态数据) 为什么修改NFS的2049端口1. 其他服务再用2049端口2. 由于某些规定(如端口号必须在10000以上)修改方法1. 检查LINUX是否按装NFS[root@CT5_6-32-22…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号