qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          MySQL數據庫如何做好優化

           碰到過好幾次這樣的題目,可每次都不能答的完全正確,現在大概列出如下:(望各位補充)
            1.數據庫的設計
            (盡量把數據庫設計的更小的占磁盤空間。
            (1).盡可能使用更小的整數類型。(mediumint就比int更合適)。
            (2).盡可能的定義字段為not null,除非這個字段需要null。
            (3).如果沒有用到變長字段的話比如varchar,那就采用固定大小的紀錄格式比如char。
            (4).表的主索引應該盡可能的短,這樣的話每條紀錄都有名字標志且更高效。
            (5).只創建確實需要的索引。索引有利于檢索記錄,但是不利于快速保存記錄。如果總是要在表的組合字段上做搜索,那么就在這些字段上創建索引。索引的第一部分必須是最常使用的字段。如果總是需要用到很多字段,首先就應該多復制這些字段,使索引更好的壓縮。
            (6).所有數據都得在保存到數據庫前進行處理。
            (7).所有字段都得有默認值。
            (8).在某些情況下,把一個頻繁掃描的表分成兩個速度會快好多。在對動態格式表掃描以取得相關記錄時,它可能使用更小的靜態格式表的情況下更是如此。
            2.系統的用途
            (1).盡量使用長連接。
            (2).explain 復雜的SQL語句。
            (3).如果兩個關聯表要做比較話,做比較的字段必須類型和長度都一致。
            (4).LIMIT語句盡量要跟 order by 或者 distinct。這樣可以避免做一次full table scan。
            (5).如果想要清空表的所有紀錄,建議用 truncate table tablename 而不是 delete from tablename。
            (6).能使用 STORE PROCEDURE 或者 USER FUNCTION的時候。
            (7).在一條insert語句中采用多重紀錄插入格式,而且使用 load data infile 來導入大量數據,這比單純的indert快好多。
            (8).經常 OPTIMIZE TABLE 來整理碎片。
            (9).還有就是 date 類型的數據如果頻繁要做比較的話盡量保存在 unsigned int 類型比較快。
            3.系統的瓶頸
            (1).磁盤搜索
            并行搜索,把數據分開存放到多個磁盤中,這樣能加快搜索時間.
            (2).磁盤讀寫(IO)
            可以從多個媒介中并行的讀取數據。
            (3).CPU周期
            數據存放在主內存中,這樣就得增加CPU的個數來處理這些數據。
            (4).內存帶寬
            當CPU要將更多的數據存放到CPU的緩存中來的話,內存的帶寬就成了瓶頸.
          English »
           

          posted on 2014-06-09 10:34 順其自然EVO 閱讀(175) 評論(0)  編輯  收藏 所屬分類: 數據庫

          <2014年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 邵武市| 齐河县| 通州市| 施甸县| 乌兰浩特市| 延寿县| 垣曲县| 新源县| 泸西县| 拜泉县| 南澳县| 广河县| 北辰区| 禄丰县| 乐都县| 平谷区| 广西| 吐鲁番市| 沂南县| 鲁甸县| 龙川县| 天门市| 大余县| 梁平县| 政和县| 顺平县| 什邡市| 永定县| 柳林县| 大英县| 崇阳县| 永昌县| 台安县| 年辖:市辖区| 临潭县| 镇赉县| 南陵县| 三门峡市| 麦盖提县| 莆田市| 玉环县|