久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql5.7 InnoDB存儲引擎方面的提升有哪些

123次閱讀
沒有評論

共計 2787 個字符,預計需要花費 7 分鐘才能閱讀完成。

這篇文章將為大家詳細講解有關 mysql5.7 InnoDB 存儲引擎方面的提升有哪些,文章內容質量較高,因此丸趣 TV 小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

版本:mysql5.7.16

一 : 安全性
    ① 初始化數據庫方式的變化
    老版本:   mysql_install_db –user=mysql –basedir=/usr/local/mysql –datadir=/opt/mysql
    mysql5.7 :  mysqld –initialize –user=mysql –basedir=/usr/local/mysql –datadir=/opt/mysql (會生成一個臨時密碼, 若不想要密碼則用參數 –initialize-insecure)
    ② 可以通過 mysql_ssl_ras_setup 來開啟 ssl
    ③ sql_mode 由 mysql5.6 的默認空 變為默認 STRICT_TRANS_TABLES

二 : InnoDB 存儲引擎方面的提升
    1. 更改索引名不鎖表,直接更改
    alter table xxx rename index ix_a to ix_b
    2. Online DDL 對 字段屬性為 varchar 更改的改進
    1 varchar(20) — varchar(40) 不鎖表直接更改
    2 40 — 20 copy 方法鎖表
    3 256 是個臨界值,這里指字節,不能跨越 如 varchar(30) — varchar(320),則以 copy 的方式 ddl,鎖表
    4 對于 char 和 int 來說還是老方法,即 copy 的算法進行 ddl,鎖表
    另:5.1 和 5.5 對于 index 的增刪用 algorithm = inplace 方法 不鎖表;5.6 支持對于 字段的增刪使用 inplace 方法。對于主鍵的更改仍然使用 copy 算法來實現。
    3.  全文索引對中文的支持
    1 mysql5.6 開始針對于 innodb 才有全文索引,但是不支持 中文,日文,韓文等。
    2 select * from xxx where match(content) against(+horand - 生日快樂 in boolean mode); 表示查找有 horand 沒有 生日快樂 的文檔。
    3 新增參數 ngram_token_size 用于檢索中文單詞的個數。與 5.6 設置單詞長度的幾個參數互斥
    4. BP 預熱的改進
    1 mysql5.6 由 i_b_p_dump_at_shutdown=1 和 i_b_p_load_at_startup=1 來實現相關預熱功能(mysql 得正常關閉)
    2 mysql5.7 添加參數 i_b_p_dump_pct=xx 來控制 dump 所有熱數據的百分比(從頭到尾),默認 25,可以在 1~100 之間。mysql5.6 是全部。
    適當降低該值 可以 減少關閉和啟動 mysql 的時間
    5. 在線調整 BP
    1 會阻塞用戶請求,建議在業務低峰期進行
    6.  回收 undo log 空間
    1 mysql5.6 開始可以指定 undo log 的文件目錄(innodb_undo_direcrory),個數(innodb_undo_tablespace) 以及大小 (innodb_undo_logs=128 回滾段數量)
    2 mysql5.7 添加兩個參數控制 undo log 的回收 ,innodb_undo_log_truncate=1(開啟回收機制),innodb_max_undo_log_size=1G(文件大小超過 1G 觸發回收機制)
    7. 通用表空間(開啟 innodb_file_per_table=1)
    1 create tablespace ts_name
    2 create table xxx(id int)engine=innodb TABLESPACE ts_name
    3 多個表公用一個 ibd 文件 和 ibdata1 在一個目錄下
    8. 獨立表空間指定存放路徑
    1 5.6 和 5.7 create table t2(id int) DATA DIRECTORY= /tmp 對應的表數據文件 idb 生成一個軟連接 連接到 /tmp 目錄下
    9. 遷移 某個 innodb 表(開啟 innodb_file_per_table=1,mysql5.6 5.7)
    1 FLUSH TABLES xxx for EXPORT
    2 xxx.frm xxx.idb xxx.cfg(存儲了數據字典信息,經測試不要也可) 將三個文件 copy 到新數據庫下
    3 更改三個文件的屬主為 mysql:mysql
    4 alter table xxx discart tablespace
    5 alter table xxx import tablespace
    6 check table xxx;
    10. 直接修改 redo log 的大小
    mysql5.5(ib_logfile0 size 最大支持 4G) 以及之前
    1 set global innodb_fast_shutdown=0
    2 mysqladmin shutdown
    3 修改 innodb_log_file_size 的大小
    4 移除老的 ib_logfile0 ib_logfile1
 5 mysqld_safe 啟動 mysql
    mysql5.6 mysql5.7(ib_logfile size 最大提升到幾十個 GB)
    1 shutdown
    2 修改配置文件 innodb_log_file_size
    3 mysqld_safe 啟動
    11. 死鎖打印到錯誤日志
    1 mysql5.5 以及之前版本
    show engine innodb status\G
    2 mysql5.6 mysql5.7
    設置參數 innodb_print_all_deadlocks=1 將死鎖信息打印到 err 日志
    12. 只讀事務(5.6 5.7)
    start transaction read only;
三 : SERVER 層提升
    1. Json 字段類型的支持
    2. 支持虛擬列(函數索引)
    1 create table xxx(id int , mod_id int GENERATED Alaways as (( id % 10)) virtual ,key vir_col_inx (mod_id) )engine=innodb;
    2 select * from xxx where mod_id=3; 則可以使用索引 vir_col_inx
    3 插入只能使用 default 方式(insert into xxx values(13,default); )
    3. explain 支持 update/delete/insert
    4. 記錄到系統日志
    server 啟動時:–syslog 
    client 連接時:–syslog

關于 mysql5.7 InnoDB 存儲引擎方面的提升有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-19發表,共計2787字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 富阳市| 甘肃省| 巨鹿县| 曲阜市| 宁安市| 长丰县| 玉田县| 和政县| 九龙县| 从化市| 伊川县| 江源县| 隆昌县| 文成县| 丰原市| 东源县| 侯马市| 年辖:市辖区| 陆良县| 大丰市| 布尔津县| 进贤县| 镇原县| 嵊州市| 南华县| 长子县| 新巴尔虎左旗| 禄丰县| 眉山市| 文山县| 南华县| 仁怀市| 长治县| 叶城县| 金秀| 昆明市| 寿光市| 松阳县| 白朗县| 定陶县| 视频|