<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        認(rèn)識 MySQL物理文件

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 16:50:56
        文檔

        認(rèn)識 MySQL物理文件

        認(rèn)識 MySQL物理文件:mysql教程欄目介紹MySQL物理文件。1.數(shù)據(jù)庫的數(shù)據(jù)存儲文件MySQL 數(shù)據(jù)庫會在data目錄下面建立一個(gè)以數(shù)據(jù)庫為名的文件夾,用來存儲數(shù)據(jù)庫中的表文件數(shù)據(jù)。不同 的數(shù)據(jù)庫引擎,每個(gè)表的擴(kuò)展名也不一樣 ,例如: MyISAM 用 .MYD 作為擴(kuò)展名, Innod
        推薦度:
        導(dǎo)讀認(rèn)識 MySQL物理文件:mysql教程欄目介紹MySQL物理文件。1.數(shù)據(jù)庫的數(shù)據(jù)存儲文件MySQL 數(shù)據(jù)庫會在data目錄下面建立一個(gè)以數(shù)據(jù)庫為名的文件夾,用來存儲數(shù)據(jù)庫中的表文件數(shù)據(jù)。不同 的數(shù)據(jù)庫引擎,每個(gè)表的擴(kuò)展名也不一樣 ,例如: MyISAM 用 .MYD 作為擴(kuò)展名, Innod

        2.1 查詢?nèi)罩?/h3>

        查詢?nèi)罩驹趍ysql中被稱之為 general log(通用日志),不要被"查詢?nèi)罩?quot;的名字誤導(dǎo),錯(cuò)誤的以為查詢?nèi)罩局粫涗泂elect語句,其實(shí)不然,查詢?nèi)罩居涗浟藬?shù)據(jù)庫執(zhí)行的命令,不管這些語句是否正確,都會被記錄,我想這也是 general log 之所以"通用"的原因吧,由于數(shù)據(jù)庫操作命令有可能非常多而且執(zhí)行比較頻繁,所以當(dāng)開啟了查詢?nèi)罩疽院螅瑪?shù)據(jù)庫可能需要不停的寫入查詢?nèi)罩荆@樣會增大服務(wù)器的IO壓力,增加很多系統(tǒng)開銷,所以默認(rèn)情況下,mysql的查詢?nèi)罩臼菦]有開啟的,但是開啟查詢?nèi)罩疽灿兄谖覀兎治瞿男┱Z句執(zhí)行密集,執(zhí)行密集的select語句對應(yīng)的數(shù)據(jù)是否能夠被緩存,查詢?nèi)罩疽部梢詭椭覀兎治鰡栴},所以,我們可以根據(jù)實(shí)際情況決定是否開啟查詢?nèi)罩荆绻枰梢允謩娱_啟。如果開啟了查詢?nèi)罩荆敲次覀兛梢酝ㄟ^如下3種方式存儲查詢?nèi)罩尽?/p>

      1. 方式1:將查詢?nèi)罩敬娣庞谥付ǖ娜罩疚募小?/p>

      2. 方式2:將查詢?nèi)罩敬娣庞?mysql.general_log 表中。

      3. 方式3:將查詢?nèi)罩就瑫r(shí)存放于指定的日志文件與mysql庫的general_log表中。

      4. 查看查詢?nèi)罩臼欠耖_啟

        show VARIABLES LIKE 'general_log';復(fù)制代碼

        image-20201022230113409

        show variables where variable_name like "%general_log%" or variable_name="log_output";復(fù)制代碼

        image-20201022230653902

        general_log:表示查詢?nèi)罩臼欠耖_啟,ON表示開啟,OFF表示未開啟,默認(rèn)為OFF

        log_output:表示當(dāng)查詢?nèi)罩鹃_啟以后,以哪種方式存放,log_output可以設(shè)置為4種值,"FILE"、"TABLE"、"FILE,TABLE"、"NONE"。

        # 設(shè)置查詢?nèi)罩镜妮敵龇绞?set global log_output=[none|file|table|file,table];
        # 設(shè)置general log的日志文件路徑
        set global general_log_file='/tmp/general.log';
        # 開啟general log
        set global general_log=on;
        # 關(guān)閉general log
        set global general_log=off;復(fù)制代碼

        2.2 慢日志

        所謂的慢查詢就是通過設(shè)置來記錄超過一定時(shí)間的SQL語句!

        開啟MySQL的慢查詢?nèi)罩竟δ?/h4>
        # 查看是否開啟 未使用索引的SQL記錄日志查詢
        show variables like 'log_queries_not_using_indexes';
        # 開啟 未使用索引的SQL記錄日志查詢
        set global log_queries_not_using_indexs=on/off;
        # 查看超過多長時(shí)間的查詢記入慢查詢?nèi)罩局?show variables like 'long_query_time';
        # 設(shè)置記錄時(shí)長,0為全部記錄,設(shè)置之后需重新啟動
        set global long_query_time=10
        # 查看是否開啟 mysql慢查詢?nèi)罩竟δ?show variables like 'slow_qurey_log'
        # 開啟、關(guān)閉慢日志
        set global slow_qurey_log=on/off;
        # 查看日志記錄位置
        show variables like 'slow_query_log_file';
        #日志存儲方式
        show variables like "log_output";復(fù)制代碼
        1. flie方式

        select sleep(10) 執(zhí)行完成查看日志

        # Time: 2020-10-26T05:12:09.564006Z
        # User@Host: root[root] @ localhost [] Id: 12
        # Query_time: 10.000272 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 1
        SET timestamp=1603689119;
        select sleep(10);復(fù)制代碼
        1. table方式

          table方式查看MySQL慢日志

        日志分析工具 mysqldumpslow

        查看 mysqldumpslow 的幫助信息:

        mysqldumpslow的幫助信息

         -s ORDER ORDER排序依據(jù)(al,at,ar,c,l,r,t),“at”是默認(rèn)值
         al: 平均鎖定時(shí)間
         ar: 平均發(fā)送行數(shù)
         at: 平均查詢時(shí)間
         c: 計(jì)數(shù)
         l: 鎖定時(shí)間
         r: 已發(fā)送行
         t: 查詢時(shí)間 
         -r 反轉(zhuǎn)排序順序(最大的最后一個(gè)而不是第一個(gè))
         -t NUM 只顯示前n個(gè)查詢
         -a 不要將所有數(shù)字抽象為N,將字符串抽象為“S”
         -n NUM 名字中至少有n個(gè)數(shù)字的抽象數(shù)字
         -g PATTERN grep: 只考慮包含此字符串的記錄
         -h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard),
         default is '*', i.e. match all
         -i NAME name of server instance (if using mysql.server startup script)
         -l don't subtract lock time from total time復(fù)制代碼

        2.3 錯(cuò)誤日志

        錯(cuò)誤日志(Error Log)是 MySQL 中最常用的一種日志,主要記錄 MySQL 服務(wù)器啟動和停止過程中的信 息、服務(wù)器在運(yùn)行過程中發(fā)生的故障和異常情況等。

        # 查看錯(cuò)誤日志記錄位置
        show variables like "log_error";
        # 在 MySQL 中,可以使用 mysqladmin 命令來開啟新的錯(cuò)誤日志,以保證 MySQL 服務(wù)器上的硬盤空間。
        # mysqladmin 命令的語法如下:
        mysqladmin -uroot -p flush-logs
        # 執(zhí)行該命令后,MySQL 服務(wù)器首先會自動創(chuàng)建一個(gè)新的錯(cuò)誤日志,然后將舊的錯(cuò)誤日志更名為 filename.err-old 。可以手動直接刪除。
        
        #配置文件中配置
        [mysqld]
        log-error=dir/{filename}復(fù)制代碼

        2.4 二進(jìn)制日志

        二進(jìn)制日志(Binary Log)也可叫作變更日志(Update Log),是 MySQL 中非常重要的日志。主要用于記錄數(shù)據(jù)庫的變化情況,即 SQL 語句的 DDL 和 DML 語句,不包含數(shù)據(jù)記錄查詢操作。

        # 查看 binary log 日志是否開啟,binary log日志默認(rèn)關(guān)閉
        show variables like "log_bin";
        # 在MySQL中可以再配置文件中開啟二進(jìn)制文件日志
        [mysqld]
        log-bin=dir/{filename}復(fù)制代碼

        其中,dir 參數(shù)指定二進(jìn)制文件的存儲路徑;filename 參數(shù)指定二進(jìn)制文件的文件名,其形式為 filename.number,number 的形式為 000001、000002 等,每次重啟 MySQL 服務(wù)后,都會生成一個(gè)新的二進(jìn)制日志文件,這些日志文件的文件名中 filename 部分不會改變,number 會不斷遞增。

        二進(jìn)制日志的格式有三種:STATEMENT,ROW,MIXED。

        ① STATEMENT模式(SBR)

        每一條會修改數(shù)據(jù)的 sql 語句會記錄到 binlog 中。優(yōu)點(diǎn)是并不需要記錄每一條 sql 語句和每一行的數(shù)據(jù)變化,
        減少了 binlog 日志量,節(jié)約 IO ,提高性能。缺點(diǎn)是在某些情況下會導(dǎo)致 master-slave 中的數(shù)據(jù)不一致(如
         sleep() 函數(shù), last_insert_id() ,以及 user-defined functions(udf) 等會出現(xiàn)問題)復(fù)制代碼

        ② ROW模式(RBR)

        不記錄每條 sql 語句的上下文信息,僅需記錄哪條數(shù)據(jù)被修改了,修改成什么樣了。而且不會出現(xiàn)某些特定情況下
        的存儲過程、或 function 、或 trigger 的調(diào)用和觸發(fā)無法被正確復(fù)制的問題。缺點(diǎn)是會產(chǎn)生大量的日志,尤其是
        alter table的時(shí)候會讓日志暴漲。復(fù)制代碼

        ③ MIXED模式(MBR)

        以上兩種模式的混合使用,一般的復(fù)制使用 STATEMENT 模式保存 binlog ,對于 STATEMENT 模式無法復(fù)制的操作使用
         ROW 模式保存 binlog , MySQL 會根據(jù)執(zhí)行的 SQL 語句選擇日志保存方式。復(fù)制代碼

        binlog復(fù)制配置

        在mysql的配置文件 my.cnf 或中,可以通過一下選項(xiàng)配置 binary log

        binlog_format = MIXED //binlog日志格式,mysql默認(rèn)采用statement,建議使用mixed 
        log-bin = mysql-bin //binlog日志文件 
        expire_logs_days = 7 //binlog過期清理時(shí)間 
        max_binlog_size = 100m //binlog每個(gè)日志文件大小 
        binlog_cache_size = 4m //binlog緩存大小 
        max_binlog_cache_size = 512m //最大binlog緩存大小
        server-id = 1復(fù)制代碼

        2.5二進(jìn)制文件基本操作

        1. 可以使用如下命令查看 MySQL 中有哪些二進(jìn)制日志文件:show binary logs

        2. show master status 命令用來查看當(dāng)前的二進(jìn)制日志;

        3. 二進(jìn)制日志使用二進(jìn)制格式存儲,不能直接打開查看。如果需要查看二進(jìn)制日志,使用 show binlog events in 'mysql-bin.000001'; 命令。

        4. 刪除二進(jìn)制文件

          1. 使用 RESET MASTER 語句可以刪除的所有二進(jìn)制日志
          2. 每個(gè)二進(jìn)制日志文件后面有一個(gè) 6 位數(shù)的編號,如 000001。使用 PURGE MASTER LOGS TO 'filename.number' 語句,可以刪除指定二進(jìn)制日志的編號之前的日志
          3. 使用 PURGE MASTER LOGS TO 'yyyy-mm-dd hh:MM:ss' 語句,可以刪除指定時(shí)間之前創(chuàng)建的二進(jìn)制日志
        5. 使用二進(jìn)制文件恢復(fù)數(shù)據(jù)

          1. 創(chuàng)建數(shù)據(jù)庫

            CREATE TABLE `33hao_activity` (
             `activity_id` mediumint(9) NOT NULL AUTO_INCREMENT COMMENT 'id',
             `activity_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '標(biāo)題',
             `activity_type` enum('1','2') CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '活動類型 1:商品 2:團(tuán)購',
             `activity_banner` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '活動橫幅大圖片',
             `activity_style` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '活動頁面模板樣式標(biāo)識碼',
             `activity_desc` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '描述',
             `activity_start_date` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '開始時(shí)間',
             `activity_end_date` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '結(jié)束時(shí)間',
             `activity_sort` tinyint(1) UNSIGNED NOT NULL DEFAULT 255 COMMENT '排序',
             `activity_state` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '活動狀態(tài) 0為關(guān)閉 1為開啟',
             PRIMARY KEY (`activity_id`) USING BTREE
            ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '活動表' ROW_FORMAT = Compact;復(fù)制代碼
          2. 新增 2 條數(shù)據(jù)

            INSERT INTO `33hao_activity` VALUES (1, '2017年跨年滿即送活動', '1', '05364373801675235.jpg', 'default_style', '', 1483113600, 1483286400, 0, 0);
            INSERT INTO `33hao_activity` VALUES (2, '轉(zhuǎn)盤抽獎彈窗', '1', '06480453986921327.jpg', '', '轉(zhuǎn)盤抽獎彈窗', 1594656000, 1594915200, 0, 0);復(fù)制代碼
          3. 刪除數(shù)據(jù)

            drop table `33hao_activity`;復(fù)制代碼
          4. 恢復(fù)數(shù)據(jù)

          5. 根據(jù)節(jié)點(diǎn)需要我們查看日志文件提供給我們的數(shù)據(jù)庫創(chuàng)建,表創(chuàng)建,數(shù)據(jù)新增等時(shí)創(chuàng)建的語句節(jié)點(diǎn),從而恢復(fù)數(shù)據(jù)。

            mysqlbinlog --start-position=154 --stop-position=2062 D:/phpstudy_pro/Extensions/MySQL5.7.26/data/mysql-bin.000001 | mysql -uroot -p復(fù)制代碼
          6. 根據(jù)時(shí)間恢復(fù)數(shù)據(jù)

            mysqlbinlog --start-datetime='2020-09-27 22:22:22' --stop-datetime='2020-09-27 22:30:00' /www/server/data/mysql-bin.000036 | mysql -uroot -p復(fù)制代碼
          7. 直接執(zhí)行binlog日志

            mysqlbinlog /www/server/data/mysql-bin.000036 | mysql -uroot -p復(fù)制代碼

        更多相關(guān)免費(fèi)學(xué)習(xí)推薦:mysql教程(視頻)

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        認(rèn)識 MySQL物理文件

        認(rèn)識 MySQL物理文件:mysql教程欄目介紹MySQL物理文件。1.數(shù)據(jù)庫的數(shù)據(jù)存儲文件MySQL 數(shù)據(jù)庫會在data目錄下面建立一個(gè)以數(shù)據(jù)庫為名的文件夾,用來存儲數(shù)據(jù)庫中的表文件數(shù)據(jù)。不同 的數(shù)據(jù)庫引擎,每個(gè)表的擴(kuò)展名也不一樣 ,例如: MyISAM 用 .MYD 作為擴(kuò)展名, Innod
        推薦度:
        標(biāo)簽: 文件 物理 認(rèn)識
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久久久免费精品国产| 亚洲AV永久无码天堂影院| 在线视频免费观看www动漫| 大地资源在线观看免费高清| 无码永久免费AV网站| 亚洲精品国产成人影院| 亚洲AV人无码激艳猛片| 亚洲av无码电影网| 色噜噜狠狠色综合免费视频| 国产色无码精品视频免费| 最近最好的中文字幕2019免费 | 亚洲欧洲中文日产| 爱情岛亚洲论坛在线观看| 最近新韩国日本免费观看| 亚洲AV无码乱码在线观看| 亚洲国产精品成人综合色在线婷婷| 91久久成人免费| 日韩亚洲变态另类中文| 亚洲人成网站看在线播放| 中文永久免费观看网站| 成年轻人网站色免费看| 色窝窝亚洲av网| 亚洲无av在线中文字幕| 国产成人人综合亚洲欧美丁香花 | 亚洲精品在线免费观看视频| a在线视频免费观看在线视频三区 a毛片成人免费全部播放 | 免费人成网站在线播放| 亚洲色av性色在线观无码| 中文字幕永久免费| 久久精品国产亚洲AV大全| 一区二区三区无码视频免费福利| 亚洲性天天干天天摸| 国产自国产自愉自愉免费24区 | 亚洲午夜视频在线观看| 好爽又高潮了毛片免费下载 | 一级视频免费观看| 韩国18福利视频免费观看| 亚洲国产精品综合久久网各| 噜噜嘿在线视频免费观看| 国产免费久久精品丫丫| 国产福利电影一区二区三区,亚洲国模精品一区 |