neverend的日志

不记录,终将被遗忘。 一万年太久,只争朝夕。 他们用数字构建了整个世界。

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  62 Posts :: 1 Stories :: 17 Comments :: 0 Trackbacks
1. 优化更需要优化的SQL
高并发低消耗 > 低并发高消耗

2. 定位性能瓶颈
profiling

3. 明确的优化目标

4. 从explain入手
y
5. 小结果集驱动大结果集??
Join操作

6. 在索引中完成排序

7. 只取出自己需要的columns
MySQL有两种排序算法,尽可能使用只访问一次数据的算法。

8. 仅仅使用最有效的过滤条件
索引键长度?

9. 避免复杂的join和子查询

充分利用EXPLAIN和profiling
profiling的使用:
1.set profiling = 1;
2.执行SQL;
3.show profile;
4.show profile [cpu, block io] for query [id];

mysqlslap 测试sql性能
mysqlslap --concurrency=5 --iterations=500 --query="selec
t * from hbe_hotel" --create-schema=phoenix -uroot -p

合理设计并使用索引
Mysql支持的索引类型:
1. B-tree索引 除了Archive的存储引擎都支持
2. Hash索引  memory和NDB支持
3. Full-text索引 MyISAM,分词后建立B-tree索引
4. R-tree索引 MyISAM ,GIS系统使用

索引的利弊
利:提高数据检索效率和排序、分组效率
弊:加大更新操作的资源消耗,增加存储空间的消耗

如何判断是否需要使用索引
1. 使用较频繁的字段应该创建索引
2. 唯一性太差的字段不建索引 经验值:15%
3. 更新非常频繁的字段不建索引
4. where子句中不出现的字段不建索引

单键索引还是组合索引?
多方考虑,平衡优劣

技术人员如何证明一个需求是否合理?
1. 每次PD提出新需求的时候,要求给出该项目预期收益的量化指标。
2. 在项目进行中,详细记录所有资源投入,包括人力、硬件等。
3. 项目上线后收集数据统计实际收益值。
4. 相关部门尽可能设计出项目投入/产出比率的计算规则,将投入/产出比公布给参与项目的所有人员。
5. 比较实际的投入/产出比与预期值,以判定项目做的是否值得。

posted on 2012-03-13 07:48 neverend 阅读(337) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: