PHP基础进阶
1、面向对象的设计的五大原则
- 单一职责原则
- 接口隔离原则
- 开放-封闭原则
- 替换原则
- 依赖-倒置原则
2、sql优化的十个原则
- 不要在列上进行函数运算,会导致索引失效
- 使用join时,应使用小结果集驱动大结果集,把复杂的join查询拆分为多条sql
- 使用like查询时,尽量避免%%,可使用<=,>=
- select查询时,避免使用*,列出所需要的列,对查询速度不会有明显影响
- 使用批量插入语句,要比逐条插入节省交互
- limit的数据比较大时使用between查询
- 不要使用rand函数来获取多条随机记录
- 避免使用null
- 不要使用count(id),使用count(*)
- 尽可能在索引中完成排序
3、缓存的三大要素
- 命中率
- 缓存更新策略
- 缓存最大数据量
4、通常缓存数据更新策略
- FIFO(先进先出)
- LRU(最近最少淘汰策略)
- LFU(最少使用淘汰策略)
Mysql的query cache是使用的FIFO策略。缓存的最大数据量是在缓存中能够处理元素的最大数或所能使用的最大存储空间
5、超过缓存机制允许的最大数据量系统会进行相应的处理,一般处理方式有:
- 停止缓存服务器,清空所有缓存数据
- 拒绝写入,不再对缓存数据进行更新
- 根据缓存更新策略清除旧数据
基于3的方式,对淘汰的数据进行备份
6、Opcode缓存:
- 虚拟机把PHP代码编译成一种中间码的结果缓存起来,下次PHP运行此页面时,只要直接解释这些代码就行了。
- eAccelerator工具能起到常驻内存的作用