热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

一个流量并发很高的项目,优化是从什么时候开始的?

当前页面遇到问题就立刻优化吗还是等到(模块项目)接近完成了才开始优化?一直get不到点
当前页面遇到问题就立刻优化吗还是等到(模块/项目)接近完成了才开始优化?
一直get不到点

回复内容:

当前页面遇到问题就立刻优化吗还是等到(模块/项目)接近完成了才开始优化?
一直get不到点

一开始架构肯定要搭建好啊,不然后面只能对硬件设施进行优化,

回答问题麻烦看清楚问题

首先当然是编码人员自身的意识-编写高质量的代码

在不影响进度的条件下可以优化代码逻辑。

然后先保证开发完成,跑起来再分析哪些是瓶颈,进行优化。

因为可能你现在绞尽脑汁优化的点占整体瓶颈的1%,优化从重点着手效率才最高。

最后,每一阶段的优化重点可能不一样,也要更具需求来分析解决瓶颈。因为你现在优化的点,可能在这一阶段根本用不到。

站在数据库角度来说:

一开始就知道是并发很大,那就需要从设计表结构开始,避开一些并发带来的设计,比如拆分一部分不常用字段到另外的表等,大架构基本方向对就可以。

至于其他的,就需要看具体需求,现在的设计基本是先完成功能,后优化!

我举个简单的例子,你过年回家,开始是想骑自行车回家,然后一直在思考用什么样的自行车,怎么骑才能快的。。。可是大家回家都是坐飞机回去的,所以,要看你优化的有没有意义,最后你都不采用现有方案,优化再好也没用。。。框架的时候就应该想好优化的问题。。。一点个人见解。。

题主的问题是当前页面遇到问题就立刻优化吗还是等到(模块/项目)接近完成了才开始优化?
我的答案是:遇到问题,解决问题

从重构开始。

你的问题其实算不上一个问题,就是想问马上改还是稍后再改,对吗?应对问题你肯定要有个方案,然后评估优先级,然后实施就是了,从这个角度来说没有任何问题是发现后马上改的。但是怎么评估优先级就要看具体情况了。
简单说:
高并发仅在特定应用上发生,影响范围被限制在某个模块内,不是核心功能,且不对其它功能产生直接影响,这个最后处理也没问题。
高并发仅在特定应用上发生,影响范围被限制在某个模块内,但是是核心功能,也对其它功能产生直接影响,方便的时候解决就行了。
高并发在2个或以上应用上发生,影响不限于某个模块内,尽快安排解决。
这也就是一般的情况,实际开发的时候你还要综合考虑外部压力之类的问题(比如客户死活让你下周上线)。

优化应从设计逻辑开始.
业务逻辑思路清晰就最好了,尤其是开始时候就和程序员从高并发角度做准备,整体可以给业务带来比较小的压力,或者功能比较好拆分,都能在项目开始阶段把问题解决掉.
当然这是最理想状态,通常做不到.
那么就要根据已有业务逻辑,尽可能将业务规划为容易拆分的模块,理想状况是,将来哪里成为瓶颈,哪里直接加台机器装上对应逻辑就解决.
这也是理想状态,没人先知先觉,但有经验的架构师可以预先处理掉大部分问题.
接着就是根据实际情况解决问题,这个就要看,实际业务上,究竟哪里是瓶颈.
一般说来,出问题的就几种情况:
1.程序员写的东西本身不过关,我见过有人在业务里递归查数据库的,还不限制层数,在本地跑的好好的,一上线,cpu爆表直接挂掉.
2.访问过多,这也可能是静态文件太多引起的,或者带宽被占满了.那么就需要考虑CDN或者把一些固定文件资源分配到专门服务器上面去.
3.数据库顶不住了.这个也非常常见,一般就是单表数据量太大引起的. 或者还不算大但查询很慢这类问题一般是索引不足或者过度索引造成的.处理完还要看看是否可以优化数据库配置,运维有时候只负责数据库跑起来,其余优化配置全不管.接着还不行就考虑加缓存,增加一层或者干脆换成 Nosql数据库,但这个就需要看具体业务逻辑才可以.

我遇到的问题,一般在这几个层面都可以解决的掉了.所以更高深的还在学习中.
抛开具体业务逻辑也只能说些比较空泛的了,所有抛开业务逻辑的优化,并发都是伪命题.

推荐阅读
  • 本文深入探讨了分布式文件系统的核心概念及其在现代数据存储解决方案中的应用,特别是针对大规模数据处理的需求。文章不仅介绍了多种流行的分布式文件系统和NoSQL数据库,还提供了选择合适系统的指导原则。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 本文详细介绍如何通过修改配置文件来隐藏Apache、Nginx和PHP的版本号,从而增强网站的安全性。我们将提供具体的配置步骤,并解释这些设置的重要性。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 优化使用Apache + Memcached-Session-Manager + Tomcat集群方案
    本文探讨了使用Apache、Memcached-Session-Manager和Tomcat集群构建高性能Web应用过程中遇到的问题及解决方案。通过重新设计物理架构,解决了单虚拟机环境无法真实模拟分布式环境的问题,并详细记录了性能测试结果。 ... [详细]
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • MongoDB核心概念详解
    本文介绍了NoSQL数据库的概念及其应用场景,重点解析了MongoDB的基本特性、数据结构以及常用操作。MongoDB是一个高性能、高可用且易于扩展的文档数据库系统。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
author-avatar
U友50140932
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有