零.Mysql的储存引擎
1.MyISAM(默认):支持三种类型索引.B-Tree(最常用).R-Tree(很少用),Full-text(数据结构也是B-Tree)
2.Innodb(第三方) 支持事务,实现外键,锁定机制改进,多版本读取
3.NDB Cluster(分布式集群环境)
一.不适合在数据库中存放的数据
1.二进制多媒体数据
包括图片,音频,视频和其他的二进制文件
2.流水队列数据:
使用成熟的第三方队列插件来实现流水日志记录系统
3.超大文本数据
二.应用层合理使用Cache
1.系统各种配置及规则数据
2.活跃用户的基本信息数据
3.活跃用户的个性化定制信息数据
4.基于时间段的统计信息数据
5.其他一些访问频繁但变更较少的数据
三.优化sql语句
四.架构设计不当带来的性能问题和资源浪费情况
1.Cache系统的不合理利用导致Cache命中率低下,
2.过渡依赖面向对象思想
3.对可扩展性的过渡追求,是对象设计的过于离散,造成大量的复杂的join语句
4.对数据库的过渡依赖.将大量适合存放文件系统的数据存入了数据库,如日志信息
5.过渡理想化系统的用户体验,如大量不需要实时更新的数据做了实时统计计算
五.Query语句对系统性能的影响
1.子查询的效率高于连接的查询
六.数据模型设计对系统性能的影响
优化1.将user表中的不常用字段重新建一个user_info表
七.硬件环境对系统性能的影响
1.IO性能
2.CUP性能
3.网络设备性能
八.整个系统性能优化收益的百分比(经验)
需求和架构及业务实现优化:55%
Query语句的优化:30%
数据库自身的优化:15%