PHP技能加点
文章目录
◆ 分布式存储
◇ Redis
◇ MongoDB
◆ 关系型存储
◇ Mysql
▲ 设计原则
-
用尽量少的存储空间来存数一个字段的数据,使用最合适的类型和长度
-
为每个表创建一个主键索引
-
最好给每个字段一个默认值,最好不能为null(NULL字段很难查询优化、NULL字段的索引需要额外空间、NULL字段的复合索引无效)
-
创建合理的索引
-
三大范式
- 字段具有原子性,不可再拆分
- 存在主键,每一行都可以被唯一区分
- 不能有冗余字段(合理冗余)
-
字段数少儿精,最好不要超过20
-
避免大sql的使用,避免大事务的使用,避免大批量操作
-
innodb主键推荐使用自增列
索引保存结构是B+树结构
-
不使用外键
-
避免使用trig/func
-
少用触发器, 多用存储过程
▲ 优化手段
-
不在数据库里做计算,移到业务层
-
不要对索引列进行计算
-
不用select *
-
OR改写为IN或者UNION
-
避免使用负向查询
-
垂直分隔,分表分库,读写分离
-
覆盖索引
-
一般来说,除非有其他理由,只需要在关联顺序中的第二张表的相应列上创建索引
-
确保任何的
GROUP BY
和ORDER BY
中的表达式只涉及到一个表中的列 -
当只要一行数据时使用 LIMIT 1
MySQL数据库引擎会在找到一条数据后停止搜索,而不是继续往后查少下一条符合记录的数据
-
利用PROCEDURE analyse()分析表数据
◆ 框架
◇ 框架门类
▲ YII
Yii中使用了当前Web开发中最为主流和成熟的设计模式。包括依MVC模式、依赖注入(Denpdency Injection, DI)和服务定位器(Service Locator)等种模式。
▲ Laravel
▲ Yaf
◆ 设计模式
- 单例
- 简单工厂
- 注册树
- 观察者
- 命令
- 责任链
- 建造者