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

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

mysqldump簡(jiǎn)單解析

   MySQL中的mysqldump,真是一個(gè)經(jīng)典而有效的工具,經(jīng)常用,但是不知道后臺(tái)運(yùn)行的過(guò)程中到底在干些什么,其實(shí)如果想得到這些基本的信息不一定要去看代碼,我們通過(guò)日志的方式就能一窺其中的奧妙。

專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)興安盟烏蘭浩特免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

   如果想看到里面的一些較為細(xì)節(jié)的日志,開(kāi)個(gè)general log就可以了。至于性能不用太擔(dān)心,general log我們隨開(kāi)隨關(guān)。

   在不同的版本中也有一些差別,我選擇的是MySQL 5.7.13的版本,簡(jiǎn)單看了下里面的日志。

    首先這個(gè)環(huán)境的事務(wù)隔離級(jí)別我選擇的是RC.

# mysqladmin var|grep isol
| tx_isolation                                             | READ-COMMITTED

   導(dǎo)出的時(shí)候,用了下面的命令導(dǎo)出:

 mysqldump --single-transaction --databases mobile_billing > test.sql

   得到的日志如下,我們來(lái)選擇性的解讀一下。

Query  /*!40100 SET @@SQL_MODE='' */
Query  /*!40103 SET TIME_ZONE='+00:00' */

這里需要注意mysqldump會(huì)默認(rèn)把隔離級(jí)別改為RR,然后開(kāi)啟的事務(wù)是有consistent snapshot選項(xiàng),這個(gè)選項(xiàng)只對(duì)RR隔離級(jí)別有效。

Query  SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
Query  START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */

因?yàn)殚_(kāi)啟了GTID,這里就會(huì)按照這個(gè)規(guī)則來(lái),后面導(dǎo)出的數(shù)據(jù)都是以這個(gè)GTID的事務(wù)為基準(zhǔn)。

Query  SELECT @@GLOBAL.GTID_EXECUTED
Query  UNLOCK TABLES

下面考慮了存儲(chǔ)的差異性,比如undo,通用表空間等,在這個(gè)環(huán)境中暫時(shí)沒(méi)用,所以結(jié)果都是空。

Query  SELECT LOGFILE_GROUP_NAME, FILE_NAME, TOTAL_EXTENTS, INITIAL_SIZE, ENGINE, EXTRA FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'UNDO LOG' AND FILE_NAME IS NOT NULL AND LOGFILE_GROUP_NAME IS NOT NULL AND LOGFILE_GROUP_NAME IN (SELECT DISTINCT LOGFILE_GROUP_NAME FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA IN ('mobile_billig'))) GROUP BY LOGFILE_GROUP_NAME, FILE_NAME, ENGINE, TOTAL_EXTENTS, INITIAL_SIZE, EXTRA ORDER BY LOGFILE_GROUP_NAME

考慮了分區(qū)的影響范圍

Query  SELECT DISTINCT TABLESPACE_NAME, FILE_NAME, LOGFILE_GROUP_NAME, EXTENT_SIZE, INITIAL_SIZE, ENGINE FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA IN ('mobile_billig')) ORDER BY TABLESPACE_NAME, LOGFILE_GROUP_NAME

下面是要導(dǎo)出數(shù)據(jù)的步驟了,會(huì)在開(kāi)始的時(shí)候設(shè)定一個(gè)savepoint,然后導(dǎo)出表中的數(shù)據(jù),完成之后,rollback到之前的save point點(diǎn)位,繼續(xù)導(dǎo)出下一個(gè)表,直到完成,會(huì)釋放savepoint,這樣一來(lái)得到的數(shù)據(jù)就是基于同一個(gè)基準(zhǔn)了。

 Query  SHOW VARIABLES LIKE 'ndbinfo\_version'
 Init DB        mobile_billing

得到建庫(kù)語(yǔ)句,默認(rèn)沒(méi)有添加if not exists的選項(xiàng)。

 Query  SHOW CREATE DATABASE IF NOT EXISTS `mobile_billing`

開(kāi)啟save point

 Query  SAVEPOINT sp

得到指定庫(kù)下的數(shù)據(jù)表列表

Query  show tables

循環(huán)列表,得到表的狀態(tài),以便進(jìn)一步處理。

 Query  show table status like 'open\_sdk\_doc\_version'

sql_quote_show_create這個(gè)采納數(shù)有兩個(gè)值(1,0),默認(rèn)是1,表示表名和列名會(huì)用``包著的。 這個(gè)服務(wù)器參數(shù)只可以在session級(jí)別設(shè)置,不支持global設(shè)置的(不支持my.cnf設(shè)置)

 Query  SET SQL_QUOTE_SHOW_CREATE=1
 Query  SET SESSION character_set_results = 'binary'

得到建表語(yǔ)句,默認(rèn)沒(méi)有添加if not exists的選項(xiàng)。

Query  show create table `open_sdk_doc_version`

設(shè)定字符集

 Query  SET SESSION character_set_results = 'utf8'

得到字段信息

 Query  show fields from `open_sdk_doc_version`
 Query  show fields from `open_sdk_doc_version`

得到的數(shù)據(jù)會(huì)是insert into的形式,其中sql_no_cache的作用是避免查詢結(jié)果緩存

 Query  SELECT /*!40001 SQL_NO_CACHE */ * FROM `open_sdk_doc_version`

 Query  SET SESSION character_set_results = 'binary'
 Query  show create table `open_sdk_doc_version`

 Query  SET SESSION character_set_results = 'utf8'
 Query  ROLLBACK TO SAVEPOINT sp
 。。。

繼續(xù)下一個(gè)表
直到完成,就會(huì)釋放save point
Query  ROLLBACK TO SAVEPOINT sp
Query  RELEASE SAVEPOINT sp


當(dāng)前標(biāo)題:mysqldump簡(jiǎn)單解析
網(wǎng)站鏈接:http://weahome.cn/article/gsjshi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部