mysql效能優化

2021-10-01 21:22:24 字數 778 閱讀 3663

transaction_isolation

解讀:事務隔離級別,oracle, sql server等商業知名資料庫預設級別為read-committed,而mysql預設為repeatable-read,它利用自身獨有的gap lock解決了"幻讀"。但也因為gap lock的緣故,相比於read-committed級別的record lock,repeatable-read的事務併發插入效能受到很大的限制。

設定:隔離級別的選擇取決於實際的業務需求(安全與效能的權衡),如果不是金融、電信等事務級別要求很高的業務,完全可以設定成transaction_isolation=read-committed。

innodb_buffer_pool_size

解讀:innodb緩衝池大小,它決定了mysql可以在記憶體中快取多少資料和索引,而不是每次都從磁碟上讀取。我們都知道redis的讀寫很快,其最重要的原因是它的所有資料都快取在記憶體中。試想一下如果innodb_buffer_pool_size足夠大,mysql所有表資料和索引都能被快取,那將是一種什麼體驗?

設定:如果是專用的mysql伺服器,一般設定為作業系統記憶體的75%左右,但至少保留2g記憶體用於作業系統維護和mysql異常事件處理。

innodb_buffer_pool_instances

解讀:innodb緩衝池例項個數,innodb緩衝池是通過一整個鍊錶的方式來管理頁面(段、簇、頁)的,由於互斥鎖的存在(保護鍊錶中的頁面),高併發事務下,頁面的讀取和寫入就需要鎖的競爭和等待。通過設定innodb_buffer_pool_instances,將一整個鍊錶劃分為多個&#

mysql效能優化 mysql效能優化

優化方式 1.空間換時間 冗餘 2.時間換空間 字段優先使用型別 int date char varchar text 索引型別 btree索引 hash索引 索引的葉子下,存放乙個資訊指向所在行的資料位址。btree有利於範圍查詢,hash有利於精確查詢。btree用的更多一些。btree索引的常...

mysql的效能優化 mysql效能優化

檢視安裝指令碼 select version 非互動式超時時間,如jdbc show global variables like wait timeout 互動式超時時間,如資料庫工具 show global variables like interactive timeout show sessi...

mysql 效能優化 命令 mysql效能優化

發現問題 當發現程式執行比較慢的時候,首先排除物力資源問題之後,就將注意力轉向mysq資料庫 1 首先確定執行慢的sql語句 mysql show full processlist 2 確認低效的查詢 多次執行第一步發現time耗費大的sql語句。檢視耗費的時間。3 分析效能 為sql生成乙個執行計...