mysql 优化几个注意点(非完全统计)
2011-06-25 17:08
204 查看
总结几个优化点,并非完全版。
数据类型的选择:避免使用NULL,最好设置NOT NULL,并建立默认值;范围取舍要适度,不宜过大(浪费空间和可能读取减慢),也不宜过小(不方便扩展);正确认识字符串中的可变长;注意客户端和存储表所使用的编码是否相同;并非utf8是最好的选择,因为utf8占用的空间更多。
转子查询为连表;避免连表;加随机函数是注意随即值的正确取舍;
union和union all的取舍。union取两个表中不同的显示;union all显示所有行,并不管所连表是否有相同项。这里就有union all的性能提高,因为union all不必想union一样,对表数据进行重新排序,并检索相同项。当数据量庞大时,这是很恐怖的。
查看慢日志。
慎重count(*)等聚合函数。如果是myisam存储引擎,那么该类存储引擎速度极快,但是若为innodb等存储引擎,则当数据库庞大到一定程度,count(*)就会让你陷入漫长的等待;若用于生产,则可能会导致怨声载道。
索引的适当建立。
存储引擎的选择。并不是所有的存储引擎都是需要innodb,有的时候myisam带来的性能问题甜头才是王道;记录日志archive存储引擎则是最好...
用好explain。
多积累,学会做笔记。
数据类型的选择:避免使用NULL,最好设置NOT NULL,并建立默认值;范围取舍要适度,不宜过大(浪费空间和可能读取减慢),也不宜过小(不方便扩展);正确认识字符串中的可变长;注意客户端和存储表所使用的编码是否相同;并非utf8是最好的选择,因为utf8占用的空间更多。
转子查询为连表;避免连表;加随机函数是注意随即值的正确取舍;
union和union all的取舍。union取两个表中不同的显示;union all显示所有行,并不管所连表是否有相同项。这里就有union all的性能提高,因为union all不必想union一样,对表数据进行重新排序,并检索相同项。当数据量庞大时,这是很恐怖的。
查看慢日志。
慎重count(*)等聚合函数。如果是myisam存储引擎,那么该类存储引擎速度极快,但是若为innodb等存储引擎,则当数据库庞大到一定程度,count(*)就会让你陷入漫长的等待;若用于生产,则可能会导致怨声载道。
索引的适当建立。
存储引擎的选择。并不是所有的存储引擎都是需要innodb,有的时候myisam带来的性能问题甜头才是王道;记录日志archive存储引擎则是最好...
用好explain。
多积累,学会做笔记。
相关文章推荐
- 高性能可扩展mysql(执行计划,索引分析优化改写,删除重复数据,区间统计,满查询日志)
- mysql 优化之注意
- 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
- 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
- mysql索引需要了解的几个注意
- 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
- [慢查优化]联表查询注意谁是驱动表 & 你搞不清楚谁join谁更好时请放手让mysql自行判定
- 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
- 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意
- 【慢查询优化】连表查询注意谁是驱动表&搞不清楚谁join谁更好时放手让mysql自行判定
- 关于mysql执行效率优化注意事项及要点(下)
- Windows7下MySQL5.5.20免安装版的配置 - (补上了我遇到的几个问题,以及mysql启动优化)
- Mysql-SQL优化-统计某种类型的个数
- Mysql 索引需要了解的几个注意
- 【MySQL】大数据统计 - 优化GROUP BY的使用
- 关于mysql运行效率优化注意事项及要点
- MySQL查询优化注意下面的四个细节
- 几个常见的MySQL的可优化点归纳总结
- mysql中文乱码问题,需要注意修改的几个地方
- 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)