mysql 5.6 改進:
(1)online ddl
mysql> show global variables like '%alter%';
| variable_name | value |
| innodb_online_alter_log_max_size | 134217728 |
| old_alter_table | off |
innodb_online_alter_log_max_size:alter快取區,預設為128m
old_alter_table:是否啟用online ddl
語法:alter table t_name add index indx01(col),
algorithm = ,
lock =
原理:從源表中cp資料到新錶,並且記錄下源表的所有資料變動,最後應用日誌,更改表明。
note:開啟online ddl 後 並不是所有的alter都能按照inplace方式進行,比如,change .
(2).mrr
mysql> show global variables like '%switch%'\g ;
*************************** 1. row ***************************
variable_name: optimizer_switch
value: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=on,block_nested_loop=on,batched_key_access=off,materialization=on,semijoin=on,loosescan=on,firstmatch=on,subquery_materialization_cost_based=on,use_index_extensions=on
和mrr相關的引數有
mrr:開啟mrr
mrr_cost_based:基於開銷由mysql自己決定是否使用mrr
read_rnd_buffer_size:隨機讀快取大小。
作用:<1>將非順序io轉變為順序io
<2>.拆分查詢
(3).icp
將資料的過濾放在儲存引擎層。
在mysql 5.6 之前 ,mysql使用索引新增查詢後,會通過索引查詢到的資料讀取到記憶體中,然後在記憶體中(server層)通過where的其他字段
過濾掉不需要的資料.
在mysql 5.6 中,在進行索引條件查詢時 , mysql 會嘗試把where的條件放在儲存引擎層過濾,然後再把資料讀取到server層,
這樣大大降低了不必要的io操作,提高效能
mysql5 6亂碼 mysql5 6亂碼
安裝mysql5.6版本遇到乙個問題,字符集亂碼,如下圖 由於是新安裝的本地資料庫,所以一定是配置的事情,查詢資料庫字符集配置,如下 有兩個是latin1的字符集,本人是window7環境,在網路找了很多資料,都顯示為修改 c program files mysql mysql server 5.6...
編譯mysql5 6 編譯安裝mysql5 6
mysqlwget tar zxvf mysql 5.6.33.tar.gz tar zxvf cmake 2.8.5.tar.gz cd cmake 2.8.5 安裝編譯工具.bootstrap prefix usr local cmake sudo gmake sudo gmake instal...
mysql5 6原始碼 mysql5 6原始碼部署
一.準備環境 環境 centos 7.3 一台 軟體版本 mysql 5.6.39 1.安裝依賴 yum y install autoconf libaio bison ncurses devel 2.建立使用者 groupadd mysql useradd g mysql s sbin nolog...