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 閱讀(361) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 明水县| 蕲春县| 克什克腾旗| 双江| 自治县| 永丰县| 尉犁县| 永川市| 赤水市| 搜索| 阿巴嘎旗| 柳州市| 揭东县| 彩票| 东宁县| 彰武县| 宁安市| 佳木斯市| 军事| 镇康县| 陆川县| 邵东县| 平阴县| 化德县| 云南省| 宝丰县| 永吉县| 乐至县| 芜湖市| 大姚县| 屯留县| 韩城市| 萍乡市| 北流市| 宽甸| 扬州市| 无棣县| 隆昌县| 南投县| 苏尼特右旗| 文化|