Ginew.Z 的博客

          一切,為了讓生活更簡單、更自然

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            21 Posts :: 0 Stories :: 14 Comments :: 0 Trackbacks
          ??? MYSQL用了好多年了,一次次的優化,一次次的頂過崩潰的邊緣,相信能有這樣經歷的人也不多。這里我寫一點這么多年來優化MYSQL的經驗。

          ??? 讓我們從頭開始

          ???? 什么機器比較適合跑MYSQL?原則就是IO操作一定要快,要少。在這個原則下,內存肯定是越大越好,硬盤肯定是越快越好。1快硬盤不夠快,那就兩塊,做RAID0。
          ??? 什么操作系統比較適合跑MYSQL?我試過Linux,FreeBSD,Solaris。solaris是最差的,因為IO慢,的確比其他兩個慢,所以我都不用它了。FBSD和linux哪個好?這個我倒是沒認真比過,感覺上,fbsd的IO比linux快,所以我有一個5千萬條記錄的mysql跑在fbsd上,訪問量很高的情況下,感覺還是很快。最近的項目都統一到Linux下了,感覺mysql在linux下跑,也不錯。看過不少評測,都說mysql在linux比fbsd快,因為我沒有實際對比,只有各自的體會,所以也不多評論了。不過fbsd有一點要注意,它默認的數據段大小只有1G,你想開大緩存,就必須重新編譯內核,不然會數據段錯。
          ??? MYSQL5.1都已經在測試了,我們應該用什么版本?如果你是新開發一個產品,建議用5.0,不過我沒實際用過,不好說。我用的最多的是3.23.x和4.1.x。由于沒有在相同的環境下測試,所以不敢說哪個版本性能最好。所以還是只推薦5.0或者4.1畢竟是現在MYSQL主推的,比較有保證。
          ??? 我最近用的最多的是4.1。現在我一般會下載for linux+icc編譯的二進制包,以前我一般下源文件自己編譯,源代碼編譯的是否好,直接影響性能。關于編譯mysql的選項,足夠另外寫一篇東西了。這里就不提了,有興趣的看看BUILD目錄下的東西。現在我常用的是編譯好的二進制包,因為他的編譯環境已經基本最優化,而且加上icc編譯器的優化,性能還能有一點提升。
          ??? 接著就是my.cnf了。我一般在support-files目錄下的my-innodb-heavy-4G.cnf文件的基礎上來修改。對性能影響比較大的,有table_cache,sort_buffer_size,join_buffer_size,query_cache_size,key_buffer_size,read_buffer_size,innodb_additional_mem_pool_size,innodb_buffer_pool_size。用INNODB是肯定的。innodb_additional_mem_pool_size可以大一點,我一般設256M,可以減少不斷增加緩存的操作,innodb_buffer_pool_size是初始化的緩存,我覺得2G有點太大了,我傾向于給操作系統本身留點緩存空間。我一般設到1.2G,他自己有需要,也會慢慢漲到2G。
          posted on 2006-03-30 17:49 無風之雨 閱讀(575) 評論(1)  編輯  收藏 所屬分類: MySQL

          Feedback

          # re: 從頭到尾優化MYSQL 2007-04-19 17:37 mysql愛好者
          我的服務器是CPU 2G,內存是 1.8G,windows2003 ,mysql是 5.1,一個數據表有2.03G,1000萬行,引擎是MYISAM。
          我需要全盤掃描該表,select count(*) from table1 where result like "%adsad%",不建索引,最快需要31秒。我把 read_buff_size 改為2M,讀磁盤的次數減少了很多 ,速度反而變慢了,要42秒,還沒有 read_buff_size=32K 時的32秒速度那么塊。該如何配置參數?請博主賜教,先謝謝了。我的Email 是 lihanhui_2002@163.com。  回復  更多評論
            

          主站蜘蛛池模板: 呼图壁县| 石城县| 耿马| 连平县| 东安县| 馆陶县| 蕲春县| 焉耆| 曲麻莱县| 正阳县| 浦北县| 嘉黎县| 柞水县| 丘北县| 米易县| 自治县| 昂仁县| 宁陕县| 衡阳县| 宁化县| 政和县| 关岭| 安宁市| 江西省| 金乡县| 天镇县| 黄龙县| 栖霞市| 化隆| 建阳市| 盐津县| 沙河市| 衡阳市| 泾川县| 土默特左旗| 乐山市| 石泉县| 平利县| 勐海县| 成都市| 岑溪市|