mysql系統資料庫

来源:http://www.cnblogs.com/shengdimaya/archive/2017/05/29/6919055.html
-Advertisement-
Play Games

mysql系統資料庫主要存儲了一些存儲MySQL服務的系統信息表。一般情況下mysql庫的表都是MYASIM引擎,除非個別情況。mysql庫的表的作用大致可以分為以下幾類: (1)授權系統表 (2)系統對象信息系統表 (3)日誌系統表 (4)伺服器端輔助系統表 (5)time zone系統表 (6) ...


mysql系統資料庫主要存儲了一些存儲MySQL服務的系統信息表。一般情況下mysql庫的表都是MYASIM引擎,除非個別情況。mysql庫的表的作用大致可以分為以下幾類: (1)授權系統表 (2)系統對象信息系統表 (3)日誌系統表 (4)伺服器端輔助系統表 (5)time zone系統表 (6)複製相關係統表 (7)optimizer相關係統表 (8)其他系統表,下麵詳細看一看 下麵詳細講: 一:授權系統表(Grant System Tables) 授權的一些表主要有以下幾個:
user: User accounts, global privileges, and other non-privilege columns.
db: Database-level privileges.
tables_priv: Table-level privileges.
columns_priv: Column-level privileges.
procs_priv: Stored procedure and function privileges.
proxies_priv: Proxy-user privileges.

基本上每一個系統表都會包含有許可權列和範圍列,也就包含一些授權的主要信息表。

user表控制了用戶是否能夠連接,如果可以連接,則會指出此用戶的許可權的信息,這個表適用於實例上的所有的資料庫。 db表範圍列決定哪些用戶可以訪問哪些資料庫從哪個主機。許可權列決定允許的操作。在資料庫級別授予的許可權適用於資料庫和資料庫中的所有對象,如表和存儲程式。 tables_priv和columns_priv表控制的許可權就更為細緻了,到了表級別和列級別。 procs_priv 表適用於存儲常式(過程和函數)。在常規級別授予的許可權只適用於一個單一的過程或函數。 proxies_priv 指出那個用戶可以作為代理,或者是用戶是否有許可權給別的用戶代理許可權。 二:系統對象信息系統表 event: event的系統表,每一次系統啟動都會重新load一遍,除非指定 --skip-grant-tables參數啟動,不然都是要load的 func: 存放關於用戶定義的方法,除非指定 --skip-grant-tables參數啟動,不然每一次系統啟動都會重新load一遍。 plugin: 存放有關伺服器插件的相關信息,除非指定 --skip-grant-tables參數啟動,不然每一次系統啟動都會重新load一遍。預設的存儲引擎是INNODB proc:存放存儲過程和方法的系統表。 三:日誌系統表,一般情況下我看了看都是NULL的
general_log: The general query log table.
slow_log: The slow query log table.

這兩張系統表可以將慢日誌和日誌按照表格的形式存儲下來,但是相對來說帶來對性能和存儲空間的使用更大,一般生產環境我們都建議設置為外部文件。

四:伺服器端輔助系統表
help_category: Information about help categories.
help_keyword: Keywords associated with help topics.
help_relation: Mappings between help keywords and topics.
help_topic: Help topic contents.

這些表存儲了mysql幫助的基本信息,我們都可以用HELP +列 來查看具體的幫助信息。

例如: 五:time zone的相關係統表
time_zone: Time zone IDs and whether they use leap seconds.
time_zone_leap_second: When leap seconds occur.
time_zone_name: Mappings between time zone IDs and names.
time_zone_transition, time_zone_transition_type: Time zone descriptions.

設置時區用以下方式:SET GLOBAL time_zone = timezone;

可以用以下方式查看:SELECT @@global.time_zone, @@session.time_zone; 六:複製相關的表 gtid_executed: 存儲了複製執行的GTID的信息。 ndb_binlog_index: slave_master_info, slave_relay_log_info, slave_worker_info: 只有mysql作為slave的時候才會存儲相關信息 七:optimizer相關係統表 innodb_index_stats, innodb_table_stats: 顯示的是索引的信息 Table 15.3 Columns of innodb_table_stats
Column name Description
database_name Database name
table_name Table name, partition name, or subpartition name
last_update A timestamp indicating the last time that InnoDB updated this row
n_rows The number of rows in the table
clustered_index_size The size of the primary index, in pages
sum_of_other_index_sizes The total size of other (non-primary) indexes, in pages
Table 15.4 Columns of innodb_index_stats
Column name Description
database_name Database name
table_name Table name, partition name, or subpartition name
index_name Index name
last_update A timestamp indicating the last time that InnoDB updated this row
stat_name The name of the statistic, whose value is reported in the stat_value column
stat_value The value of the statistic that is named in stat_name column
sample_size The number of pages sampled for the estimate provided in the stat_value column
stat_description Description of the statistic that is named in the stat_name column
兩個表的last_update 這列都記錄了最後一次索引更改的時間。而且這兩張表都是可以手動進行更新的,修改這兩個表可以強制某個查詢的執行計劃,或者測試替代計劃,優點是不需要修改資料庫相關信息。更新統計信息需要使用FLUSH TABLE tbl_name來更新統計信息。可以查詢某張表的索引信息:
SELECT SUM(stat_value) pages, index_name, SUM(stat_value)*@@innodb_page_size size FROM mysql.innodb_index_stats WHERE table_name='t1' AND stat_name = 'size' GROUP BY index_name;
SELECT index_name, stat_name, stat_value, stat_description FROM mysql.innodb_index_stats WHERE table_name like 't1';
SELECT index_name, stat_name, stat_value, stat_description FROM mysql.innodb_index_stats WHERE table_name like 't1' AND stat_name LIKE 'n_diff%';

server_cost:伺服器操作的成本估算信息

engine_cost: 指定存儲引擎的成本估算信息 FLUSH OPTIMIZER_COSTS命令可以重新開始讀取記錄信息。 八:其他的一些系統表 audit_log_filter, audit_log_user: 這兩個表提供的是mysql審計相關的信息,如果沒有安裝的話是沒有這兩個表的。 firewall_users, firewall_whitelist: 要安裝mysql企業防火牆才可以使用。 servers: 主要是 FEDERATED 引擎使用。不做介紹了。   這是一個mysql系統庫的大概介紹,感覺比較需要我們掌握的就是關於授權,系統表,日誌表,優化表和複製相關的表。後面可以看一看mysql的日誌類型等和優化相關的方面深入瞭解一下。        
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 7. 圖的聚合操作 圖的聚合操作主要的方法有: (1) Graph.mapReduceTriplets():該方法有一個mapFunc和一個reduceFunc,mapFunc對圖中的每一個EdgeTriplet進行處理,生成一個或者多個消息,並且將這些消息發送個Edge的一個或者兩個頂點,redu ...
  • Redis 小白指南(三)- 事務、Watch 命令、過期、消息通知、管道、優化記憶體空間 簡介 目錄 事務 Watch 命令 過期時間 排序 消息通知 管道 優化記憶體空間 事務 事務是一組命令的集合,事務和命令一樣都是 Redis 的最小執行單位。即一個事務中的命令,要麼都執行,要麼都不執行。可以思 ...
  • 一.資料庫的相關操作 1.創建資料庫 create database dbname; 2.查看系統下有哪些資料庫 show databases; 3.選擇使用哪個數據 use daname 4.查看一個資料庫下有哪些數據表 use dbname show tables; 5.刪除資料庫 drop d ...
  • 說明 本文寫於2017 05 20,使用MySQL 5.7.18。操作系統為64位CentOS Linux release 7.2.1511 (Core),以桌面形式安裝。 卸載MariaDB CentOS7預設安裝MariaDB而不是MySQL,而且yum伺服器上也移除了MySQL相關的軟體包。因 ...
  • Azure的遷移繼續進行中,這次是MySQL Database on Azure服務,微軟在SQL Server之外的資料庫能力到底如何呢 ...
  • 今天,終於把MySQL資料庫的知識系統的過了一遍,下麵整理出一些常用的基本操作。 一、MySQL伺服器的啟動與關閉 1、啟動MySQL伺服器 開始 -> 運行 輸入“cmd”,然後在命令提示符下輸入“net start MySQL”指令。 2、連接MySQL伺服器 輸入指令:MySQL -uroot ...
  • Redis 小白指南(二) 引言 目錄 基礎命令 字元串類型 散列類型 列表類型 集合類型 有序集合類型 基礎命令 1.獲得符合規則的鍵名列表 pattern 支持 glob 風格通配符: 2.判斷一個鍵是否存在 如果鍵存在則返回整數類型 1,否則返回 0 3.刪除鍵 可以刪除一個或者多個鍵,返回值 ...
  • 這是我的第一篇博文,有一絲小激動,不曾想有一天我也能寫出一點經驗為大家服務。如有表達不清請多見諒。 首先,我之前必須完成過註冊,並把個人信息存入資料庫中。 其次,這部分的個別對象是存於某些文檔中的,需要引用命名空間。 using System;using System.Collections.Gen ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...