国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL之優化

2024-07-24 12:32:46
字體:
來源:轉載
供稿:網友
        MySQL的優化 :

一、我們可以且應該優化什么?
 
      硬件
 
      操作系統/軟件庫
 
      SQL服務器(設置和查詢)
 
      應用編程接口(api)
 
      應用程序
 
 
------------------------------------------------------------
 
二、優化硬件
 
如果你需要龐大的數據庫表(>2G),你應該考慮使用64位的硬件結構,像Alpha、Sparc或即將推出的IA64。因為MYSQL內部使用大量64位的整數,64位的cpu將提供更好的性能。
 
對大數據庫,優化的次序一般是RAM、快速硬盤、CPU能力。
 
更多的內存通過將最常用的鍵碼頁面存放在內存中可以加速鍵碼的更新。
 
如果不使用事務安全(transaction-safe)的表或有大表并且想避免長文件檢查,一臺UPS就能夠在電源故障時讓系統安全關閉。
 
對于數據庫存放在一個專用服務器的系統,應該考慮1G的以太網。延遲與吞吐量同樣重要。
 
 
----------------------------------------------------------------
 
三、優化磁盤
 
為系統、程序和臨時文件配備一個專用磁盤,如果確是進行很多修改工作,將更新日志和事務日志放在專用磁盤上。
低尋道時間對數據庫磁盤非常重要。對與大表,你可以估計你將需要log(行數)/log(索引塊長度/3*2/(鍵碼長度 + 數據指針長度))+1次尋到才能找到一行。對于有500000行的表,索引Mediun int類型的列,需要log(500000) / log(1024/3*2/(3 + 2))+1=4次尋道。上述索引需要500000*7*3/2=5.2M的空間。實際上,大多數塊將被緩存,所以大概只需要1-2次尋道。
然而對于寫入(如上),你將需要4次尋道請求來找到在哪里存放新鍵碼,而且一般要2次尋道來更新索引并寫入一行。
對于非常大的數據庫,你的應用將受到磁盤尋道速度的限制,隨著數據量的增加呈N log N數據級遞增。
將數據庫和表分在不同的磁盤上。在MySQL中,你可以為此而使用符號鏈接。
條列磁盤(RAID 0)將提高讀和寫的吞吐量。
帶鏡像的條列(RAID 0+1)將更安全并提高讀取的吞吐量。寫入的吞吐量將有所降低。
不要對臨時文件或可以很容易地重建的數據所在的磁盤使用鏡像或RAID(除了RAID 0)。
在Linux上,在引導時對磁盤使用命令hdpaRM -m16 -d1以啟用同時讀寫多個扇區和DMA功能。這可以將響應時間提高5~50%。
在Linux上,用async (默認)和noatime掛載磁盤(mount)。
對于某些特定應用,可以對某些特定表使用內存磁盤,但通常不需要。
 
---------------------------------------------------------------
 
四、優化操作系統
 
不要交換區。如果內存不足,增加更多的內存或配置你的系統使用較少內存。
不要使用NFS磁盤(會有NFS鎖定的問題)。
增加系統和MySQL服務器的打開文件數量。(在safe_mysqld腳本中加入ulimit -n #)。
增加系統的進程和線程數量。
如果你有相對較少的大表,告訴文件系統不要將文件打碎在不同的磁道上(Solaris)。
使用支持大文件的文件系統(Solaris)。
選擇使用哪種文件系統。在Linux上的Reiserfs對于打開、讀寫都非??臁N募z查只需幾秒種。
 
----------------------------------------------------------------
 
五、 優化應用
 
應該集中精力解決問題。
在編寫應用時,應該決定什么是最重要的:
速度
操作系統間的可移植性
SQL服務器間的可移植性
使用持續的連接。.
緩存應用中的數據以減少SQL服務器的負載。
不要查詢應用中不需要的列。
不要使用select * FROM table_name...
測試應用的所有部分,但將大部分精力放在在可能最壞的合理的負載下的測試整體應用。通過以一種模塊化的方式進行,你應該能用一個快速“啞模塊”替代找到的瓶頸,然后很容易地標出下一個瓶頸。
如果在一個批處理中進行大量修改,使用LOCK TABLES。例如將多個UPDATES或DELETES集中在一起。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 冷水江市| 尼木县| 西畴县| 湘潭县| 买车| 平陆县| 隆安县| 高碑店市| 皮山县| 庆城县| 桓台县| 临漳县| 广德县| 涞水县| 建湖县| 那坡县| 鄂托克旗| 平塘县| 高安市| 黄梅县| 阳原县| 竹北市| 定远县| 石泉县| 大洼县| 阳原县| 屯门区| 镇远县| 永嘉县| 丽水市| 衡阳市| 安庆市| 且末县| 阳高县| 城固县| 阿拉善右旗| 兴隆县| 信宜市| 高台县| 瑞丽市| 沙田区|