1.选择何种类型数据库?
关系型数据库:mysql Oracle db2 informix sysbase sql server等等
非关系型数据库(不仅仅是关系数据库):MongoDB
如何选择?
非关系型数据库适合分布式系统。比如大批量的监控数据;另一方面,时间序列数据库,使用非关系型存取会有数量级提升。
2.数据库表结构设计
三范式设计:原子性、唯一性、无冗余。
反范式设计:没有冗余的数据库未必是最好的数据库,又是为了提高运行效率,就必须降低范式标准,适当保留冗余数据。
比如:评论数,为了避免多次多表查询,设置字段。
3.选择合适的存储引擎
MylSAM 优点全文引擎 缺点 不支持 事物机制,不支持外键关联
InnoDB 优点
缺点 不支持全文引擎,简单查询速度可能低于MylSAM。
高并发 innoDB
4.定位慢查询,添加索引
5数据缓存 缓存比直接从数据库查询速度快。
6复制及读写分离 分布式数据库 难点在于数据库分离,但大大提升性能。
7.垂直切分和水平切分。