在路上

          路上有驚慌,路上有理想

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            28 Posts :: 1 Stories :: 10 Comments :: 0 Trackbacks
          1.注意auto_increment
          mysql5.0在高并發下(每天近2億)插入單表數據出現了死鎖(偶現),查了下相關文檔,發現是因為采用了auto-increment的主鍵帶來的問題,造成Table級的死鎖。
          原因:
          對于auto_increment字段,innodb會在內存里保存一個計數器用來記錄auto_increment的值,當插入一個新行數據時,就會用一個表鎖來鎖住這個計數器,所以會造成Table級的死鎖。

          在Mysql5.1服務器配置多了一個參數innodb_autoinc_lock_mode,可以設置不同的值避免這個問題。比如設為1
          innodb_autoinc_lock_mode = 0
          (“traditional” lock mode)
          innodb_autoinc_lock_mode = 1 (“consecutive” lock mode) Mysql5.1默認
          innodb_autoinc_lock_mode = 2 (“interleaved” lock mode)

          2.注意數據庫連接

          應用中偶現性錯誤:

          Last packet sent to the server was 8202 ms ago.; nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

          連接池中的connection無法連接到數據庫,原因是池中的空閑conn連接db超時,而c3p0 pool本身不知道。
          查了下Mysql5.0文檔,默認的等待時間是8小時——show global variables like 'wait_timeout'
          但是該服務器的時間又不太合理。
          還是覺得在jdbc pool上做調整,比如在jdbc.url加入一個參數autoReconnect=true。可以解決。

          3.重視jdbc連接池配置
            高并發下,4個連接池,每個100個最大連接。高峰期出行can not get a connection的錯誤。詢問過DBA,mysql數據庫高峰期最大連接近300。
            理論上連接池還是夠的。但仍然爆掉。推測原因可能出在DBCP連接池有些連接使用后一直被占著,沒有釋放回連接池。
            據此,修改DBCP配置,加入2個參數:
            removeAbandoned=true
           
          removeAbandonedTimeout==200
           
            問題不再出現。
          4.字符集文件
          mysql 數據庫目錄下面有個文件db.opt ,記錄了db的字符集。如果你是通過alter databases(schema) 命令更改的數據庫默認屬性,那么現有的表的默認字符集和排序規則不受影響。新建的表即使不指定字符集,仍采用數據庫的字符集。

           

          posted on 2010-12-09 12:56 阮步兵 閱讀(1670) 評論(2)  編輯  收藏 所屬分類: MySQL

          Feedback

          # Juicy Couture 2010-12-09 16:41 Juicy Couture
          嗯 有些該注意的地方 都注意了  回復  更多評論
            

          # re: mysql學習筆記(2) 2010-12-10 10:05 mashiguang
          收藏了,謝謝  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 新巴尔虎左旗| 嘉祥县| 顺义区| 丰原市| 锡林浩特市| 故城县| 天柱县| 六枝特区| 嵊泗县| 安岳县| 玛曲县| 武定县| 博兴县| 朝阳县| 沙洋县| 房产| 瓦房店市| 原平市| 电白县| 项城市| 巴彦淖尔市| 新巴尔虎左旗| 始兴县| 平湖市| 梨树县| 达州市| 尉氏县| 峡江县| 涿鹿县| 米脂县| 天门市| 子洲县| 乌拉特中旗| 锦屏县| 南安市| 乐业县| 鞍山市| 普安县| 垫江县| 昌都县| 富平县|