隨筆-8  評論-0  文章-1  trackbacks-0
          隔離級別

          • READ UNCOMMITTED隔離級別 讀取未提交內容 在這個級別下所有事物都能看到未提交的事務執行結果,容易引起臟讀
          • READ COMMITTED 讀取提交內容(mysql 非默認)只能讀取提交后的事務結果
          • REPEATABLE READ (Mysql 默認)可重復讀 保證在一個事務下的多個實例讀取到相同內容,可能會出現幻讀, mysql InnoDB 和 Falcon 引擎解決來幻讀問題
          • SERIALIZABLE 可串行化 最高的事物級別 對每個事務加鎖。強制事物排序

          1 隔離級別                       臟讀(Dirty Read)          不可重復讀(NonRepeatable Read)          幻讀(Phantom Read)
          2 讀未提交(Read uncommitted)     可能                         可能                                     可能
          3 讀已提交(Read committed)       不可能                       可能                                     可能
          4 可重復讀(Repeatable read)      不可能                       不可能                                   可能
          5 可串行化(Serializable )        不可能                       不可能                                   不可能

          MySQL 事務
          • Mysql 默認提交數據的 AUTOCOMMIT ON
          • InnoDB 行級別鎖 多版本并發控制,NDB Cluster Falcon 是事務型 MyISAM 是非事務的 表級別鎖,在混合事務的時候不能保證數據一致性
          • InnoDB 使用二相鎖定協議 一個事務在執行的時候會獲得鎖,在commit 或者rollback的時候釋放鎖,可以顯示制定鎖 例如 LOCK IN SHARE MODE ,FOR UPDATE

          查看 表的狀態
          show table status like '表名'

          MyISAM MySQL 默認的數據庫引擎 不支持事務和行級鎖

          表轉換
          alter table方式 alter table mytable engine = innoDB; 復制表

          打開MySql慢查詢日志
          修改my.conf
          #打開慢查詢
          log-slow-queries 
          = <file_name>
          #記錄查詢大于2秒的記錄, 默認是10秒
          long_query_time 
          = 2
          #記錄沒有使用索引的查詢
          log-queries-not-using-indexes
          #記錄運行較慢的管理命令
          log-slow-admin-statements
          • 取查看MySql 數據庫狀態 show status show processlist
          • FLUSH STATUS 刷新狀態
          • SQL_NO_CACHE MySql 不會緩存結果 例如 select sql_no_cache * from admin_user
          • show profile cpu for query 1 ; 查看用戶查詢CPU使用率
          選擇優化的數據類型
          • 更小通常更好,正確的存儲和表示數據的最小類型,更小的數據類型通常更快,更少的使用存儲空間 內存和CPU緩存
          • 簡單就好 越簡單的數據類型需要的CPU周期越少
          • 盡量避免NULL
          • 整數 數據類型包括 TINYINT(8) SMALLINT(16) MEDIUMINT(24) INT(32) BIGINT(64),所有類型都包含UNSIGNED熟悉 ,表示不允許為負數,并且正數上限提高一倍
          • 實數FLOAT(4) DOUBLE(8) 保存精確的小數 DECIMAL可以定義精度 比如DECIMAL(8,2)會在小數點前保留6位,后2位
          • 字符串類型p66
          posted on 2012-05-27 21:14 巖石 閱讀(268) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 永定县| 张家口市| 仲巴县| 团风县| 获嘉县| 东海县| 延安市| 武邑县| 瑞安市| 文山县| 南溪县| 曲水县| 延安市| 芜湖县| 明水县| 太原市| 台北市| 清水河县| 张北县| 溧水县| 霍州市| 祥云县| 德阳市| 临江市| 玛多县| 大新县| 西丰县| 甘洛县| 衢州市| 前郭尔| 崇州市| 车致| 德庆县| 侯马市| 莱州市| 吉隆县| 敦煌市| 焉耆| 英吉沙县| 贵溪市| 鄱阳县|