数据层次

  • sql的优化,多次查询的尽量用一句sql来执行
  • 索引优化。表过大,重要搜索字段一定要加上索引,多字段要遵循最左原则
  • 数据库引擎:对于非重要数据表可以使用myisam数据表,而非innerdb
  • 反三范式设计,减少数据表的查询
  • 如果数据量确实过大,需要根据适当的算法考虑分表
  • 配置数据库的主从复制,读写分离。

代码层次

  • include_once比include更加耗时
  • 变量拼接比直接使用双引号快
  • 公共变量的定义如果变量值不变化,不要写再循环内
  • 静态函数要比成员函数快(不用new了,直接使用)
  • 如果处理的文案过大,正则会很影响行性能;
  • 尽量不要使用相对路径来包含文件,因为会基于当前目录去查找;
  • ===要快于==
  • && 要比and快,并且更不容易出问题(&& 运算级别高于and),类推。
  • 后端缓存
  • 对于常用数据,要用缓存存储。可以使用redis等,但是也要考虑内存的大小。具体取舍看具体项目
  • 前端
  • 服务器缓存:pagecache,
  • 客户端:基本常用数据存储到cookie,localstorage等不需要不同页面都要获取接口数据,对接口造成压力
  • 服务器层次
  • 硬件配置
  • 服务器尽量购买使用地区最近的服务器
  • 负载均衡,让多个服务器来分解压力