欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

MariaDB10.0亮眼特性詳解-創(chuàng)新互聯(lián)

很多同學(xué)一定聽(tīng)說(shuō)過(guò)MariaDB。作為MySQL的重要分支之一,它繼續(xù)秉承完全開(kāi)源的姿態(tài)(MySQL也有不少好用功能是收費(fèi)的喲),被很多大型互聯(lián)網(wǎng)企業(yè)廣泛使用(如Google、Twitter)。同時(shí),紅帽7(包括CentOS)也將默認(rèn)數(shù)據(jù)庫(kù)由MySQL更改為MariaDB。在這種情況下,一定要了解一下這個(gè)逆生長(zhǎng)的MariaDB。
本文,著重介紹MariaDB 10.0 GA版中的非常吸引人的若干特性,方便大家和MySQL進(jìn)行比較。
1. Feedback插件--不推薦:

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),湖口企業(yè)網(wǎng)站建設(shè),湖口品牌網(wǎng)站建設(shè),網(wǎng)站定制,湖口網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,湖口網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

a) 開(kāi)啟方式:my.cnf配置文件的[mysqld]模塊,加入feedback=on

b) 作用:會(huì)發(fā)送使用數(shù)據(jù)給開(kāi)發(fā)人員,幫助其優(yōu)化代碼。

2. InnoDB和XtraDB轉(zhuǎn)換:

a) MDB默認(rèn)使用XtraDB。

b) 開(kāi)啟方式:

1) 停止mysql服務(wù)。

2) 在my.cnf配置文件的[mysqld]模塊,加入ignore_builtin_innodb、 

plugin_load=innodb=ha_innodb.so

3. MYSQL客戶端報(bào)告:

a) 控制參數(shù):global.progress_report_time 值范圍要大于5.單位秒。5以下的值被忽略。

b) 關(guān)閉的方法:

1) 啟動(dòng)服務(wù)時(shí)加入--disable-progress-reports

2) 設(shè)置global.progress_report_time 值等于0.

c) MariaDB附帶的mytop腳本一樣也支持此功能

4. SHOW EXPLAIN FOR query_id:Explain命令的變種。

可以在得知QID的情況下查詢執(zhí)行計(jì)劃。

5. LIMIT ROWS EXAMINED:LIMIT命令的進(jìn)化版本。

語(yǔ)法:LIMIT [m] ROWS EXAMINED n (m可選)

作用:普通的LIMIT語(yǔ)句在查詢到指定數(shù)量的分頁(yè)結(jié)果后還會(huì)繼續(xù)執(zhí)行。如果是大表的話這樣的分頁(yè)操作會(huì)消耗過(guò)多的資源。

舉例:LIMIT 100 ROWS EXAMINED 10000 將從一個(gè)含有10000條記錄的分頁(yè)中再次篩選出前100條記錄。

6. INSTALL SONAME:安裝指定插件、引擎。INSTALL PLUGIN命令變種。

語(yǔ)法:INSTALL SONAME engine_name.

舉例:安裝BLACKHOLE引擎。

INSTALL SONAME ‘ha_blackhole’;

INSTALL PLUGIN Blackhole SONAME ‘ha_blackhole’;

卸載某插件使用UNINSTALL替換INSTALL

7. 生成HTML/XML文件:

舉例:mysql --html/--xml isfdb < isfdb-001.sql > isfdb-001.html/ isfdb-001.xml

會(huì)將isfdb-001.sql中的查詢語(yǔ)句返回的結(jié)果生成相應(yīng)的html或者xml文件。

8. MYISAM引擎轉(zhuǎn)換為ARIA引擎:

ARIA引擎與MYISAM引擎的主要區(qū)別是ARIA引擎自帶crash safe功能,在災(zāi)難性斷電或其他意想不到的表錯(cuò)誤導(dǎo)致的表?yè)p壞時(shí),可以恢復(fù)數(shù)據(jù)。

使用ALTER TABLE命令轉(zhuǎn)換引擎。

轉(zhuǎn)換引擎操作步驟和MYSQL一致:

a) 首先創(chuàng)建新表

b) 導(dǎo)入數(shù)據(jù)

c) Rename操作

因此對(duì)于千萬(wàn)級(jí)的大表來(lái)說(shuō)這一過(guò)程將相當(dāng)漫長(zhǎng)。建議不要在生產(chǎn)數(shù)據(jù)庫(kù)上進(jìn)行此操作。

9. 控制MariaDB查詢優(yōu)化器策略:

a) 查看當(dāng)前查詢優(yōu)化器中的優(yōu)化策略狀態(tài):

SELECT @@optimizer_switch\G

開(kāi)啟或關(guān)閉某個(gè)優(yōu)化策略:

如:SET [GLOBAL] optimizer_switch="mrr=on";

或者在my.cnf配置文件中的[mysqld]模塊中添加:

[mysqld] 

optimizer_switch = "mrr=on, mrr_cost_based=on,mrr_sort_keys=on"

b) 在INNODB和XTRADB上打開(kāi)優(yōu)化器extended keys策略:

1) 打開(kāi)方法如上文所示,參數(shù)名為:extended_keys=on

2) 作用:由于優(yōu)化器是基于成本的(CBO),因此執(zhí)行計(jì)劃中會(huì)出現(xiàn)有很多索引但是優(yōu)化器無(wú)法使用的查詢。打開(kāi)優(yōu)化器extended keys策略將會(huì)使優(yōu)化器在出現(xiàn)這一情況時(shí),盡量使用索引來(lái)返回,而不是掃描全表。

10. 配置Aria引擎兩步死鎖監(jiān)測(cè):

a) 原理:

當(dāng)Aria引擎無(wú)法在表上創(chuàng)建鎖時(shí),它首先會(huì)依據(jù)deadlock_search_depth_short的值為可能出現(xiàn)的死鎖創(chuàng)建一個(gè)深度搜索等待圖(WFG)。當(dāng)搜索結(jié)束后如果還無(wú)法創(chuàng)建鎖,那么Aria引擎并不急著判斷出死鎖,而是會(huì)等待deadlock_timeout_short定義的微秒后,再搜索一遍。如果還是無(wú)法創(chuàng)建鎖,那么Aria引擎會(huì)使用deadlock_search_depth_long參數(shù)的值,創(chuàng)建一個(gè)深度搜索等待圖。當(dāng)搜索結(jié)束后,如果還沒(méi)有定義死鎖,那么Aria引擎將等待deadlock_timeout_long定義的微秒后,返回超時(shí)錯(cuò)誤。

b) 查看當(dāng)前設(shè)置:SHOW VARIABLES LIKE ‘deadlock_%’\G

c) 修改參數(shù)值,如:

MariaDB 10.0 亮眼特性詳解

d) 或?qū)懭肱渲梦募y.cnf的[mysqld]模塊中。

e) 注意:上述timeout參數(shù)中的單位是微秒。

11. 配置MYISAM引擎鍵緩存段(key_cache_segments):

作用:增強(qiáng)MYISAM引擎表性能。高并發(fā)環(huán)境中提高M(jìn)YISAM引擎性能。

a) 原理:

當(dāng)MYISAM引擎的線程使用鍵緩存時(shí)(key cache),線程將首先獲得一把鎖。在高并發(fā)場(chǎng)景中,大量的線程同時(shí)申請(qǐng)鎖。對(duì)大表或者熱點(diǎn)表來(lái)說(shuō),完整的鍵緩存會(huì)成為性能瓶頸。分割后的鍵緩存可以減少鎖競(jìng)爭(zhēng),獲得鎖的線程只需要鎖定相應(yīng)的鍵緩存段就可以了,無(wú)需鎖定整個(gè)鍵緩存。

b) 查看當(dāng)前設(shè)置:SHOW VARIABLES LIKE ‘key_cache_segments’\G

c) 修改參數(shù)值:

MariaDB 10.0 亮眼特性詳解

d) 或?qū)懭肱渲梦募y.cnf的[mysqld]模塊中。

12. 配置線程池(重中之重啊,核心功能啊):

MariaDB的線程池提供了更強(qiáng)大的將線程集中使用的功能。并替換了mysql之前的one tread per client connection方法。該方法在典型的web壓力場(chǎng)景(數(shù)量多但是返回結(jié)果小的場(chǎng)景)中對(duì)線程的復(fù)用效果并不理想。

a) 修改參數(shù)值:

在my.cnf中的[mysqld]模塊中添加thread_handling = pool-of-threads。

b) 重啟服務(wù)

c) 作用:

生產(chǎn)場(chǎng)景中出現(xiàn)大量的短查詢或者CPUload過(guò)高時(shí),線程池是處理這一問(wèn)題的最好方案。但是在短時(shí)間出現(xiàn)的大量長(zhǎng)查詢時(shí),就不適用了。通常這種情況,linux下可以使用thread_pool_idle_timeout參數(shù)來(lái)緩解壓力。

d) 其他重要的參數(shù):

1) thread_pool_stall_limit:?jiǎn)挝缓撩搿?/p>

用于出現(xiàn)大量長(zhǎng)連接查詢,該參數(shù)控制線程被stall的時(shí)間。默認(rèn)值500。如果查詢已經(jīng)被stall,MDB將創(chuàng)建一個(gè)新線程,線程池中的大線程數(shù)由thread_pool_max_threads參數(shù)控制。默認(rèn)值500。當(dāng)線程池中的線程數(shù)達(dá)到大值后,將不會(huì)在創(chuàng)建新線程,即使線程已經(jīng)被stall。

這一情況可以使用參數(shù)extra_port來(lái)解決。該參數(shù)將打開(kāi)一個(gè)額外的端口,來(lái)保持查詢進(jìn)行連接。該參數(shù)的值必須和默認(rèn)端口不同。

2) thread_pool_idle_timeout:?jiǎn)挝幻搿?/p>

定義線程在撤銷之前的等待時(shí)間。默認(rèn)值60.

如果發(fā)現(xiàn)在某線程被撤銷后會(huì)定期的創(chuàng)建新的線程,那么應(yīng)當(dāng)增加該參數(shù)的值。

3) thread_pool_size:LINUX平臺(tái)定義線程池大小。

13. 配置Aria引擎pagecache:

Aria引擎的PAGE是row format型。它的pagecache由三個(gè)參數(shù)控制:

MariaDB 10.0 亮眼特性詳解

a) aria_pagecache_buffer_size:?jiǎn)挝籦yte。默認(rèn)值128M-512M。

該參數(shù)不能動(dòng)態(tài)修改。

b) aria_pagecache_age_threshold:定義在pagecache中的數(shù)據(jù)塊留存長(zhǎng)度。

c) aria_pagecache_division_limit:?jiǎn)挝话俜直取6xpagecache中溫?cái)?shù)據(jù)所占的百分比。

14. 使用子查詢緩存(subquery cache)優(yōu)化查詢:MariaDB獨(dú)占功能!

a) subquery cache極大提升子查詢性能。

b) 默認(rèn)開(kāi)啟.

c) 兩個(gè)狀態(tài)值變量:

1) subquery_cache_hit:子查詢緩存命中次數(shù)

2) subquery_cache_miss:未命中次數(shù)

15. 優(yōu)化半連接子查詢(semijoin query):

半連接子查詢中常見(jiàn)的是帶where條件的IN子句。這種子句在MYSQL中是很難被優(yōu)化的。而MDB提供了一個(gè)可以開(kāi)啟的優(yōu)化器參數(shù),指導(dǎo)優(yōu)化器對(duì)這種類型的查詢進(jìn)行優(yōu)化。

a) 參數(shù):exists_to_in=on。默認(rèn)不開(kāi)啟。

b) 對(duì)EXISTS 型的查詢也可以起到優(yōu)化作用。

c) 修改參數(shù)值:

1) SET optimizer_switch='exists_to_in=on';

2) 或者修改配置文件:

MariaDB 10.0 亮眼特性詳解

16. 創(chuàng)建全文索引(full-text index)--不推薦:

a) full-text index是一個(gè)特殊類型的索引,用來(lái)搜索基于text類型的列.

b) 只可以為char, varchar, text類型創(chuàng)建全文索引.

c) 全文索引允許我們使用"MATCH() ... AGAINST"語(yǔ)法來(lái)查詢數(shù)據(jù).

語(yǔ)法的MATCH部分包含一個(gè)以逗號(hào)分隔的待查詢columns列表.

語(yǔ)法的AGAINST部分包含需要搜索的字符串也包含一個(gè)可選的修飾符來(lái)表明所執(zhí)行查詢的類型.

查詢類型有:

IN NATURAL LANGUAGE MODE, IN BOOLEAN MODE, WITH QUERY EXPANSION

默認(rèn)類型為: IN NATURAL LANGUAGE MODE.

17. 開(kāi)啟用戶統(tǒng)計(jì):

a) 修改配置文件:

MariaDB 10.0 亮眼特性詳解

b) 或SET GLOBAL USERSTAT = 1;

c) 開(kāi)啟后可以查看統(tǒng)計(jì)數(shù)據(jù)。如:

SHOW INDEX_STATISTICS;

18. 使用全局事務(wù)ID(global transaction IDs):
更直觀的全局事務(wù)。比5.6逗比般的GTID更容易理解。

a) 全局事務(wù)ID(GTID)是在10.0.2版本中新添加的特性,它將使復(fù)制機(jī)能更穩(wěn)定、更靈活。這里需要注意的是:MariaDB和MYSQL 5.6中提到的GTID不能通用,而且差別較大。

b) GTID信息的存放位置在mysql.gtid_slave_pos表,在更新數(shù)據(jù)的同一事務(wù)中更新此表的最新位置信息。

c) GTID的組成:0-1-12345

1) 第一位是domain ID。這是由MariaDB特有的多源復(fù)制場(chǎng)景決定的。是32位的無(wú)符號(hào)整型。單源場(chǎng)景下,該值為0.domain id 的值在my.cnf中設(shè)定,如gtid-domain-id = 1。

2) 第二位是server_id。是32位的無(wú)符號(hào)整型。

3) 第三位是Commit_id。是64位的無(wú)符號(hào)整型。事務(wù)在master提交階段指定的提交id號(hào),這是一個(gè)遞增的值,每次提交都不一樣,而在group commit中所有被group的事務(wù)所指定的commit id都是相同的。

d) 默認(rèn)開(kāi)啟,查看GTID的值使用show binlog events命令,結(jié)果如下所示:

MariaDB 10.0 亮眼特性詳解

GTID_LIST列中的值就是GTID。

其實(shí)值為[]。

查看從庫(kù)的當(dāng)前GTID 值,使用命令 SELECT @@global.gtid_slave_pos,主庫(kù)上返回空值。

查看master的當(dāng)前gtid值,使用命令 select @@global.gtid_current_pos;

e) 從庫(kù)采用gtid的復(fù)制,語(yǔ)法為:CHANGE MASTER TO master_use_gtid = { slave_pos | current_pos | no }

f) 在一般的復(fù)制場(chǎng)景中,從庫(kù)使用的是slave_pos的值。如A是B的主庫(kù),當(dāng)A掛掉后B充當(dāng)主庫(kù),A重新上線后想要做B的從庫(kù)時(shí),使用的是current_pos值。因?yàn)锳之前是主庫(kù),沒(méi)有做過(guò)從庫(kù),所以不存在slave_pos值。注:沒(méi)有做過(guò)從庫(kù)的主庫(kù)沒(méi)有slave_pos

如果之前的從庫(kù)沒(méi)有開(kāi)啟binlog,那么current_pos和slave_pos的值是相等的。

g) 可以使用set global gtid_slave_pos= ‘XXXX’修改slave_pos的值。

查詢slave_pos和current_pos:

select @@global.gtid_slave_pos / gtid_current_pos

h) 實(shí)測(cè)主庫(kù)在不停寫(xiě)入時(shí)崩潰,當(dāng)主庫(kù)重新上線后,從庫(kù)可以根據(jù)slave_pos追上主庫(kù)。

i) 理解current_pos和slave_pos概念:

Current_pos:值由主庫(kù)操作決定。當(dāng)機(jī)器開(kāi)啟binlog,在執(zhí)行事務(wù)時(shí)就會(huì)記錄該值。使用select @@gtid_current_pos中展示的是所有的pos值。

Slave_pos: 從庫(kù)上的該值與current_pos一致。使用select @@gtid_current_pos中展示的是本機(jī)復(fù)制到的GTID。

19. 多源復(fù)制:

a) 多源復(fù)制中應(yīng)當(dāng)注意的要點(diǎn):

1) 各源my.cnf中應(yīng)當(dāng)增加relay-log參數(shù),如:relay_log = db01-relay-binlog。格式中建議增加主機(jī)名來(lái)區(qū)分。

2) 不同源的domain-id一定要不同。否則會(huì)出現(xiàn)復(fù)制失敗。配置domain-id在my.cnf文件中增加gtid-domain-id=n 參數(shù)。重啟服務(wù)。

3) change master 語(yǔ)法中可以增加源主機(jī)名來(lái)增加區(qū)分,如:

Change master [“connect_name”] to 

master_host = ‘xxx.xxx.xxx.xxx’,

master_port=3306,

master_user=’replication’,

master_password=’replication’,

master_use_gtid=current_pos;

注:使用源主機(jī)名來(lái)做change master后,只能只用start all slaves命令來(lái)啟動(dòng)復(fù)制。其余命令也類似。

4) 啟動(dòng)所有復(fù)制:start all slaves;

停止所有復(fù)制:stop all slaves;

查看所有連接復(fù)制狀態(tài):show all slaves status;

查看某連接復(fù)制狀態(tài):show slave [“connect_name”] status; 

清空某連接復(fù)制狀態(tài):reset slave [“connect_name”]; 

注意:這里的清空只是將relay_log從1開(kāi)始重做。不能將復(fù)制信息從slave status的展示中清除。

清空某連接復(fù)制狀態(tài)并從slave status展示中刪除:

reset slave [“connect_name”] ALL

b) 多源復(fù)制的引用場(chǎng)景:

1) 將各主庫(kù)上的數(shù)據(jù)整合到一個(gè)slave上,方便查詢。

2) 將各主庫(kù)的數(shù)據(jù)整合到一個(gè)slave上,方便備份。

20. 增加基于行復(fù)制的binlog注釋:

在配置文件中增加binlog_ annotate_row_events參數(shù)。會(huì)在mysqlbinlog命令查看binlog時(shí),在基于行復(fù)制的部分展示SQL語(yǔ)句。

21. 配置binlog事件總和檢查器(binlog event checksum):

a) 作用:用于在文件系統(tǒng)出現(xiàn)故障前快速發(fā)現(xiàn)。

b) 參數(shù)設(shè)置:
MariaDB 10.0 亮眼特性詳解

也可以通過(guò)在my.cnf配置文件中添加參數(shù)BINLOG_CHECKSUM開(kāi)啟。

22. 在復(fù)制過(guò)程中跳過(guò)指定的binlog事件:

a) 參數(shù)設(shè)置:開(kāi)啟。

MariaDB 10.0 亮眼特性詳解

b) 作用:

在開(kāi)啟功能的這一階段中處理的所有事務(wù)都不會(huì)被從庫(kù)復(fù)制。類似的功能還有將binlog功能關(guān)閉:set @@sql_log_bin = 0。但是這樣的參數(shù)設(shè)置會(huì)停止所有事務(wù)記錄binlog。Skip_replication參數(shù)則不會(huì)。
Perry.Zhang
02.18.2016

網(wǎng)頁(yè)名稱:MariaDB10.0亮眼特性詳解-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://chinadenli.net/article30/dcjjso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站域名注冊(cè)、外貿(mào)建站、網(wǎng)站制作企業(yè)網(wǎng)站制作、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)
99国产高清不卡视频| 伊人久久青草地综合婷婷| 经典欧美熟女激情综合网| 亚洲成人久久精品国产| 日韩国产亚洲欧美另类| 欧美日韩免费黄片观看| 中文字幕av诱惑一区二区| 欧美做爰猛烈叫床大尺度| 亚洲综合一区二区三区在线| 在线视频三区日本精品| 国产又色又爽又黄又免费| 91精品国产av一区二区| 97人妻人人揉人人躁人人| 千仞雪下面好爽好紧好湿全文| 国产不卡在线免费观看视频| 亚洲专区一区中文字幕| 免费久久一级欧美特大黄孕妇| 国产日韩欧美在线播放| 国产专区亚洲专区久久| 久久99国产精品果冻传媒| 国产成人精品资源在线观看| 久久国产亚洲精品成人| a久久天堂国产毛片精品| 午夜视频免费观看成人| 少妇被粗大进猛进出处故事| 日本熟妇五十一区二区三区| 日本加勒比在线播放一区| 日韩精品少妇人妻一区二区| 亚洲av秘片一区二区三区| 中文字幕一区二区熟女| 亚洲另类女同一二三区| 日本少妇中文字幕不卡视频| 国产日韩欧美在线亚洲| 日韩aa一区二区三区| 国产成人人人97超碰熟女| 亚洲中文字幕人妻av| 国产精品国三级国产专不卡| 亚洲国产成人精品一区刚刚| 日韩人妻中文字幕精品| 国产又色又爽又黄又大| 亚洲精品中文字幕无限乱码|