- 适当违反三范式,增加冗余
添加索引
2.1 索引问题:
占用物理空间
增删改需要更新索引,影响性能2.2 索引类别:
1) 直接索引 & 间接索引
2) 单个索引 & 复合索引2.3 索引使用规则:
1) 复合索引前导列不在查询条件中,则索引失效
2) 避免对索引类计算
3) 查询列与索引列次序一致
4) 用多表连接代替EXISTS子句- 对表水平分割,如按月份拆分大表
- 对表垂直分割,将复杂字段拆解到新表
- 字段选用较短的类型
- 文件、图片存放在文件系统,而非数据库中
- 批量写入数据,避免频繁读写
- 使用缓存数据库如Redis、MemCached
- 优化查询:
1) 避免排序或为尽可能少的行排序,若要做大量数据排序,最好将相关数据放在临时表中;用简单的键(列)排序,如整型或短字符串排序
2) 避免表内的相关子查询
3) 避免在Where子句中使用复杂的表达式
4) 在Where子句中多使用“与”(And)连接,少使用“或”(Or)连接 - 读写分离
amoeba、mysql-proxy