真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

我們提供的服務有:成都網(wǎng)站設計、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、涪城ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的涪城網(wǎng)站制作公司

版本: mysql5.7.16

一 : 安全性
    ① 初始化數(shù)據(jù)庫方式的變化
        老版本:    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 (會生成一個臨時密碼,若不想要密碼則用參數(shù) --initialize-insecure)
    ② 可以通過 mysql_ssl_ras_setup 來開啟 ssl
    ③ sql_mode 由mysql5.6的默認空 變?yōu)槟J 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是個臨界值,這里指字節(jié) , 不能跨越 如 varchar(30) --> varchar(320),則以copy的方式ddl,鎖表
        4> 對于char 和 int來說還是老方法,即 copy 的算法進行ddl,鎖表
        另 : 5.1和5.5 對于index的增刪用 algorithm = inplace方法 不鎖表;5.6支持對于 字段的增刪使用inplace方法。對于主鍵的更改仍然使用copy算法來實現(xiàn)。
    3. 全文索引對中文的支持
        1> mysql5.6 開始針對于innodb才有全文索引,但是不支持 中文,日文,韓文等。
        2> select * from xxx where match(content) against('+horand -生日快樂' in boolean mode ); 表示查找有'horand' 沒有 '生日快樂'的文檔。
        3> 新增參數(shù) ngram_token_size 用于檢索中文單詞的個數(shù)。與5.6設置單詞長度的幾個參數(shù)互斥
    4. BP 預熱的改進
        1> mysql5.6 由 i_b_p_dump_at_shutdown=1 和 i_b_p_load_at_startup=1 來實現(xiàn)相關預熱功能(mysql得正常關閉)
        2> mysql5.7 添加參數(shù) i_b_p_dump_pct=xx 來控制 dump所有熱數(shù)據(jù)的百分比(從頭到尾),默認25,可以在1~100之間。mysql5.6是全部。
            適當降低該值 可以 減少關閉和啟動mysql的時間
    5. 在線調整 BP
         1> 會阻塞用戶請求,建議在業(yè)務低峰期進行
    6. 回收undo log 空間
        1> mysql5.6 開始可以指定 undo log的文件目錄(innodb_undo_direcrory),個數(shù)(innodb_undo_tablespace)以及大小(innodb_undo_logs=128 回滾段數(shù)量)
        2> mysql5.7 添加兩個參數(shù)控制undo log 的回收 ,innodb_undo_log_truncate=1(開啟回收機制),innodb_max_undo_log_size=1G(文件大小超過1G觸發(fā)回收機制)
    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' 對應的表數(shù)據(jù)文件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(存儲了數(shù)據(jù)字典信息,經(jīng)測試不要也可) 將三個文件copy到新數(shù)據(jù)庫下
        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
        設置參數(shù) innodb_print_all_deadlocks=1 將死鎖信息打印到err日志
    12. 只讀事務(5.6 5.7)
        start transaction read only;
三 : SERVER 層提升
    1. Json 字段類型的支持
    2. 支持虛擬列(函數(shù)索引)
        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. 記錄到系統(tǒng)日志
        server啟動時 : --syslog 
        client 連接時: --syslog

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


本文名稱:mysql5.7InnoDB存儲引擎方面的提升有哪些
文章出自:http://weahome.cn/article/pjogog.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部