数据库调优要点随记
2012-04-11 17:24
274 查看
数据库瓶颈一般在IO和CPU
1、少用group by, order by
2、通过索引来排序(不要所有字段都用索引,因为insert、update要重构索引很耗时)
3、避免select *
4、少用join
5、join和子查询,还是用join来代替子查询吧
6、少用or
7、用union all代替union
8、尽早过滤,比如在多个表进行分页数据查询的时候,最好能在一个表上先过滤,在与别的外表join
9、避免类型转换
10、mysql有自带的缓存机制,不需要用memcache来做!
11、把重复、不统一的数据当成你最大的敌人来对付
12、当心被分隔符分割你的数据,他们违反了“字段不可再分”,如某字段内容为physics/maths。
解决方案:把这些字段移到另一个表中,使用外键来连接
13、所有字段都必须完整的依赖主键而不是部分依赖
14、如果性能是关键,不要固执的去避免冗余
对于数据库的设计我们没有必要把三范式作为死规定,作为指导思想即可。你在做数据库设计的时候首先要明白的db是要干什么的。是面向事物的?还是面向统计分析的?面向事物的当然CRUD(create,read,update,delete)居多,而统计的则是查询,分析居多,两种数据库的设计必然会不一样,因为侧重点不一样。
1、少用group by, order by
2、通过索引来排序(不要所有字段都用索引,因为insert、update要重构索引很耗时)
3、避免select *
4、少用join
5、join和子查询,还是用join来代替子查询吧
6、少用or
7、用union all代替union
8、尽早过滤,比如在多个表进行分页数据查询的时候,最好能在一个表上先过滤,在与别的外表join
9、避免类型转换
10、mysql有自带的缓存机制,不需要用memcache来做!
11、把重复、不统一的数据当成你最大的敌人来对付
12、当心被分隔符分割你的数据,他们违反了“字段不可再分”,如某字段内容为physics/maths。
解决方案:把这些字段移到另一个表中,使用外键来连接
13、所有字段都必须完整的依赖主键而不是部分依赖
14、如果性能是关键,不要固执的去避免冗余
对于数据库的设计我们没有必要把三范式作为死规定,作为指导思想即可。你在做数据库设计的时候首先要明白的db是要干什么的。是面向事物的?还是面向统计分析的?面向事物的当然CRUD(create,read,update,delete)居多,而统计的则是查询,分析居多,两种数据库的设计必然会不一样,因为侧重点不一样。
相关文章推荐
- 一些数据库调优要点随记
- 数据库调优要点随记
- 设置数据库自动增长注意要点
- 数据库调优2
- 数据库设计要点
- 数据库性能调优(三)
- HBase数据库性能调优
- 数据库MySQL调优实战经验总结
- 数据库调优
- 浅谈数据库调优
- 数据库零碎要点001_数据库的4大特性(原子性_持久性_隔离性_一致性)_数据库的隔离级别(脏读_幻读_不可重复读)_mysql如何设置隔离级别
- DataAdapter更新数据库要点
- 系统性能调优(3)----数据库索引优化
- 数据库设计思路和要点
- Informix数据库调优
- 数据库调优教程(一)前言&慢查询定义
- 数据库调优教程(三)记录慢查询
- 数据库调优教程(八) 什么情况下不要使用索引
- 数据库 查询要点分析 (vb6.0)
- 数据库性能调优技术系列文章(1)--索引调优