<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

    數(shù)據(jù)庫優(yōu)化的最佳實踐

     在許多很好的例子,技術(shù)和方法被世界上最好的數(shù)據(jù)庫性能專家所高薦。我們將討論提高數(shù)據(jù)庫性能的最常用的方法,而不是評論或建議任何特定的工具或技術(shù)。
      1)謹慎而有效地使用索引
      選擇合理的索引(前綴性及可選性)、刪除沒有用的索引。
      2)使用規(guī)范化,但不要使用過頭
      規(guī)范化(至少是第三范式)是一個易于理解且標準的方法。然而,在有些情況下,你可能希望違反這些規(guī)則。查詢表通常是規(guī)范化的產(chǎn)物,也就是說,你創(chuàng)建了一個特殊的表,這個表包含了在其他表中被頻繁使用的相關(guān)信息的列表。然而,當使用那些經(jīng)常被訪問且分布有限(僅有或有限的行數(shù)擁有小值)的查找表時,會使系統(tǒng)性能降低。在這種情況下,每次你使用查詢信息,它們必須使用join以獲取完整數(shù)據(jù)。join的開銷很大,而且頻繁訪問會使開銷隨著時間逐漸增加。為了減少這種潛在的性能問題,可以使用枚舉字段存儲數(shù)據(jù),而不是使用查找表存儲數(shù)據(jù)。例如,可以使用枚舉字段存儲頭發(fā)彩色值,而不是創(chuàng)建表來存儲頭發(fā)顏色值,這樣還可以避免使用join.
      3)使用正確的存儲引擎
      mysql的最強大的功能之一是它支持不同的存儲引擎,存儲引擎管理如何存儲和恢復數(shù)據(jù)。mysql支持多個存儲引擎,每個存儲引擎具有獨特的功能和用途,可以使數(shù)據(jù)庫設計通過使用最合適他們的應用程序的存儲引擎來改善數(shù)據(jù)庫系統(tǒng)的性能。例如,如果有一個這樣的環(huán)境:使用事務控制高度活躍的數(shù)據(jù)庫,請選擇一個合適這個情況的存儲引擎(mysql的有些存儲引擎不支持事務),你還可能會發(fā)現(xiàn)這樣的視圖和表,它們常常被查詢但是幾乎不被更新(例如查找表),在這種情況下,你可能希望使用存儲引擎將這些數(shù)據(jù)存儲在內(nèi)存中,以便快速訪問它們。
      InnoDB存儲引擎支持事務,在需要事務支持時,通常應該選擇這個存儲引擎,它是Mysql中目前唯一事務性的引擎。很多第三方存儲引擎支持事務,但是僅有InnoDB有"開包即用"選項。有趣的是,InnoDB中所有的索引都是B-trees,在這個B樹中索引記錄被存儲在樹的葉子項,InnoDB適用于高性能和事務處理環(huán)境。
      MyISAM存儲引擎是Mysql默認引擎,如果你在create語句中省略了engine選項,那么默認使用這個引擎。MyISAM經(jīng)常在數(shù)據(jù)倉庫、電子商務和企業(yè)應用中使用。MyISAM使用高級緩存和索引機制提高數(shù)據(jù)檢索速度,另外,當各種應用程序需要快速檢索數(shù)據(jù)而不需要事務時,MyISAM將是很好的選擇。
      Blackhole存儲引擎是非常有趣的,它并不存儲任何東西。實際上,正如它的名字所言-存儲進去的數(shù)據(jù)永遠還會返回。Blackhole存儲引擎有個特殊的用途,如果啟用了二進制日志SQL命令將被寫入這個日志,這時,Blackhole存儲引擎被當做復制拓撲中的中繼代理使用。
      Memory存儲引擎(有時被稱為HEAP)是內(nèi)存中的存儲器,它使用哈希機制頻繁檢索被使用過的數(shù)據(jù),這樣可以更快地檢索,它訪問數(shù)據(jù)的方式與其他存儲引擎類似,但是數(shù)據(jù)存儲在內(nèi)存中,并且只在mysql會話有效。當關(guān)機時,這些數(shù)據(jù)被刷新并刪除掉。Memory存儲引擎通常用于以下情況:靜態(tài)數(shù)據(jù)被頻繁使用且很少被改變(如查找表).
      4)通過Query Cache使用視圖來加速結(jié)果
      5)使用約束
      6)使用explain、analyze、optimize
      這些工具在診斷和調(diào)優(yōu)時很重要,在不發(fā)生錯誤的前提下經(jīng)常使用它們,但是請小心使用。具體來說,當analyze、optimize有意義且不是作為定期的預定的事件時使用它們。我們發(fā)現(xiàn)有些系統(tǒng)管理員晚上使用這些命令,但是一般情況下,這樣做是不值得的,并且會產(chǎn)生不必要的表副本。顯然,強制系統(tǒng)定期復制數(shù)據(jù)浪費時間,并會導致操作過程中的訪問有限。

    posted on 2013-12-24 11:51 順其自然EVO 閱讀(355) 評論(0)  編輯  收藏


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


    網(wǎng)站導航:
     
    <2013年12月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    導航

    統(tǒng)計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 毛片免费视频播放| 成人免费福利电影| 中文字幕亚洲无线码a| 免费的黄网站男人的天堂| 日本一道综合久久aⅴ免费| 久久亚洲中文字幕无码| 免费v片在线观看品善网| 精品视频免费在线| 久久影视国产亚洲| 三级网站在线免费观看| 亚洲人成电影在在线观看网色| 99精品在线免费观看| 亚洲成人高清在线观看| 日本精品人妻无码免费大全| 亚洲精品无码一区二区| 国产一级淫片视频免费看| 一区二区三区免费电影| 国产精品亚洲精品日韩已满| 无码av免费网站| 亚洲一区二区三区深夜天堂| 免费观看a级毛片| 久草免费福利在线| 亚洲一区二区三区首页| 一二三四免费观看在线电影| 小说区亚洲自拍另类| 狠狠亚洲婷婷综合色香五月排名| 三年片在线观看免费观看大全动漫 | 69xx免费观看视频| 亚洲色精品三区二区一区| 伊人久久亚洲综合影院| 在线观看免费无码视频| 亚洲欧洲在线播放| 亚洲av午夜成人片精品电影| 毛片在线全部免费观看| 亚洲一区二区三区丝袜| 亚洲色偷偷综合亚洲AV伊人| 国产精品免费观看| 一级**爱片免费视频| 亚洲国产高清视频在线观看| 免费国产在线观看| 日韩精品免费一级视频|