程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 使用Mysql需要注意的問題

使用Mysql需要注意的問題

編輯:關於MYSQL數據庫

一、 分區問題

  • MySQL的分區對按照分區鍵進行的查詢操作沒有優化處理;

  • 為了提高統計操作的效率,需要增加對分區鍵的索引。但是對分區表的分區字段值進行比較會產生錯誤結果,例如進行max查詢,按照分區字段的索引進行倒序的查詢,都會返回錯誤的結果。(版本5.1.9, 5.1.11)

    二、加鎖問題
  • 對索引字段相等條件的更新,是使用行級鎖,但如果該字段沒有索引,就會使用表級鎖;

  • 對於諸如 insert....select from *** where ***的sql,MySQL用share read鎖實現一致性讀,會阻塞滿足條件記錄的DML操作。應用中如果不注意這些,會造成嚴重的鎖等待和性能問題。

  • 對 於兩個事務T1和T2,對於對f字段做過索引的表t,如果T1先對某個記錄 r 加S鎖(select lock in shared mode),T2再加X鎖(select for update),然後T1再試圖修改 r 時,會立即返回系統發生死鎖的錯誤,並自動回滾T1。

  • 執行insert操作時如果發生“主鍵重復異常”,相應記錄將被當前事務加上S鎖。在該事務試圖update該記錄之前,如果有另一個事務又一次對該記錄執行了update操作(加X鎖),第一個事務會立即提示死鎖,並自動回滾。所以對通過insert判斷記錄是否存在,若存在則執行update的操作存在一定風險.

    三、MySQL tools問題
  • 將通過mysqldump導出的.sql數據,通過mysql導入時需要指定--default-character-set=latin1,否則MySQL導入的速度將慢得難以忍受。

  • 使用MySQLdump時,--flush-logs和--master-data參數同時使用時工具執行會阻塞。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved