欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MYSQL中information_schema的使用

 更新時(shí)間:2025年08月10日 09:54:11   作者:yingjuxia.com  
information_schema是MySQL中的一個(gè)虛擬數(shù)據(jù)庫(kù),用于提供關(guān)于 MySQL 服務(wù)器及其數(shù)據(jù)庫(kù)的元數(shù),這些元數(shù)據(jù)包括數(shù)據(jù)庫(kù)名稱、表名稱、列的數(shù)據(jù)類型、訪問(wèn)權(quán)限等信息,下面就來(lái)詳細(xì)的介紹一下如何使用,感興趣的可以了解一下

關(guān)鍵要點(diǎn)

  • information_schema 是 MySQL 中的一個(gè)虛擬數(shù)據(jù)庫(kù),提供關(guān)于數(shù)據(jù)庫(kù)結(jié)構(gòu)和權(quán)限的元數(shù)據(jù)信息。
  • 研究表明,它包含只讀表(視圖),用戶可查詢但不能修改,適合數(shù)據(jù)庫(kù)管理和開(kāi)發(fā)。
  • 它遵循 SQL 標(biāo)準(zhǔn),但 MySQL 有一些特定擴(kuò)展,性能查詢需注意。

什么是information_schema?

information_schema 是 MySQL 中的一個(gè)虛擬數(shù)據(jù)庫(kù),存儲(chǔ)關(guān)于 MySQL 服務(wù)器及其數(shù)據(jù)庫(kù)的元數(shù)據(jù),例如數(shù)據(jù)庫(kù)名稱、表結(jié)構(gòu)、列類型和訪問(wèn)權(quán)限等。它不是物理數(shù)據(jù)庫(kù),而是通過(guò)一組只讀表(實(shí)際上是視圖)實(shí)現(xiàn)的,方便用戶了解服務(wù)器和數(shù)據(jù)庫(kù)的詳細(xì)信息。

主要功能

  • 提供數(shù)據(jù)庫(kù)元數(shù)據(jù),如表名、列類型和權(quán)限。
  • 支持通過(guò) SELECT 語(yǔ)句查詢,但不能插入、更新或刪除數(shù)據(jù)。
  • 替代傳統(tǒng)的 SHOW 語(yǔ)句,提供更靈活的元數(shù)據(jù)訪問(wèn)方式。

使用示例

例如,您可以查詢某個(gè)數(shù)據(jù)庫(kù)的表信息:

SELECT table_name, table_type, engine 
FROM information_schema.tables 
WHERE table_schema = 'db5' 
ORDER BY table_name;

這會(huì)列出 db5 數(shù)據(jù)庫(kù)中的所有表及其類型和存儲(chǔ)引擎。

MySQL 中information_schema簡(jiǎn)介詳細(xì)報(bào)告

引言

information_schema 是 MySQL 中的一個(gè)虛擬數(shù)據(jù)庫(kù),用于提供關(guān)于 MySQL 服務(wù)器及其數(shù)據(jù)庫(kù)的元數(shù)據(jù)(metadata)。這些元數(shù)據(jù)包括數(shù)據(jù)庫(kù)名稱、表名稱、列的數(shù)據(jù)類型、訪問(wèn)權(quán)限等信息,是數(shù)據(jù)庫(kù)管理員和開(kāi)發(fā)者查詢和分析 MySQL 服務(wù)器及其對(duì)象的重要資源。根據(jù)官方 MySQL 文檔(截至 2025 年 7 月 19 日),information_schema 遵循 SQL 標(biāo)準(zhǔn),并包含 MySQL 特定的擴(kuò)展,適合各種數(shù)據(jù)庫(kù)管理和開(kāi)發(fā)場(chǎng)景。

定義與背景

information_schema 是一個(gè)邏輯數(shù)據(jù)庫(kù),不是物理存在的數(shù)據(jù)庫(kù)目錄。它由一組只讀表組成,這些表實(shí)際上是視圖(views),而不是基礎(chǔ)表,因此沒(méi)有關(guān)聯(lián)的文件,也不能設(shè)置觸發(fā)器(triggers)。根據(jù) MySQL 8.0 參考手冊(cè),information_schema 提供了一種標(biāo)準(zhǔn)化的方式來(lái)訪問(wèn)數(shù)據(jù)庫(kù)元數(shù)據(jù),類似于 SQL 標(biāo)準(zhǔn)中的數(shù)據(jù)字典(data dictionary)或系統(tǒng)目錄(system catalog)。

研究表明,information_schema 自 MySQL 早期版本起就存在,旨在幫助用戶了解服務(wù)器和數(shù)據(jù)庫(kù)的結(jié)構(gòu)和狀態(tài)。它是 SQL:2003 標(biāo)準(zhǔn)的一部分,MySQL 實(shí)現(xiàn)了這一標(biāo)準(zhǔn),并添加了一些特定擴(kuò)展以適應(yīng)其功能需求。

主要特點(diǎn)

以下是 information_schema 的核心特點(diǎn):

  • 虛擬數(shù)據(jù)庫(kù)information_schema 是一個(gè)虛擬數(shù)據(jù)庫(kù),存在于每個(gè) MySQL 實(shí)例中,存儲(chǔ)關(guān)于所有其他數(shù)據(jù)庫(kù)的信息。
  • 只讀表:包含多個(gè)只讀表,這些表是視圖,不能進(jìn)行 INSERT、UPDATEDELETE 操作,僅支持 SELECT 查詢。
  • 元數(shù)據(jù)存儲(chǔ):提供關(guān)于數(shù)據(jù)庫(kù)、表、列、索引、權(quán)限、字符集和校對(duì)規(guī)則等詳細(xì)信息。例如:
    • 數(shù)據(jù)庫(kù)名稱和特性(schemata 表)。
    • 表名稱、類型(如 BASE TABLEVIEW)和存儲(chǔ)引擎(tables 表)。
    • 列名稱、數(shù)據(jù)類型和是否允許空值(columns 表)。
  • 標(biāo)準(zhǔn)化與擴(kuò)展:遵循 ANSI/ISO SQL:2003 標(biāo)準(zhǔn),但包含 MySQL 特定的列和表,如 ENGINE 列在 TABLES 表中,反映 MySQL 的存儲(chǔ)引擎信息。
  • 性能考慮:查詢 information_schema 時(shí),尤其是涉及多個(gè)數(shù)據(jù)庫(kù)的查詢,可能較慢,建議使用 EXPLAIN 優(yōu)化查詢。

以下是 information_schema 中一些常見(jiàn)表的示例:

表名稱主要功能示例列
tables提供數(shù)據(jù)庫(kù)中表的信息table_name, table_type, engine
columns提供表中列的詳細(xì)信息column_name, data_type, is_nullable
schemata提供數(shù)據(jù)庫(kù)的信息schema_name, default_character_set_name
column_privileges提供列級(jí)別的權(quán)限信息grantee, table_schema, column_name
character_sets提供支持的字符集信息character_set_name, default_collate_name
collations提供支持的校對(duì)規(guī)則信息collation_name, character_set_name

使用方式

用戶可以通過(guò)標(biāo)準(zhǔn)的 SQL 查詢?cè)L問(wèn) information_schema 中的表。例如,以下查詢列出 db5 數(shù)據(jù)庫(kù)中的所有表及其類型和存儲(chǔ)引擎:

SELECT table_name, table_type, engine 
FROM information_schema.tables 
WHERE table_schema = 'db5' 
ORDER BY table_name;

輸出可能如下(示例數(shù)據(jù)):

table_nametable_typeengine
fkBASE TABLEInnoDB
fk2BASE TABLEInnoDB
gotoBASE TABLEMyISAM
intoBASE TABLEMyISAM
kBASE TABLEMyISAM
kursBASE TABLEMyISAM
loopBASE TABLEMyISAM
pkBASE TABLEInnoDB
tBASE TABLEMyISAM
t2BASE TABLEMyISAM
t3BASE TABLEMyISAM
t7BASE TABLEMyISAM
tablesBASE TABLEMyISAM
vVIEWNULL
v2VIEWNULL
v3VIEWNULL
v56VIEWNULL

此查詢耗時(shí) 0.01 秒,返回 17 行,展示了 information_schema 的查詢效率。

information_schema 還可以替代傳統(tǒng)的 SHOW 語(yǔ)句,提供更靈活的元數(shù)據(jù)訪問(wèn)。例如:

  • SHOW TABLES 可以用以下查詢替代:
    SELECT table_name FROM information_schema.tables WHERE table_schema = DATABASE();
    
  • 這種方式符合 Codd 的規(guī)則,語(yǔ)法更熟悉,且與 Oracle Database 等其他數(shù)據(jù)庫(kù)系統(tǒng)兼容。

權(quán)限與可見(jiàn)性

根據(jù)文檔,大多數(shù) information_schema 表對(duì)所有用戶可見(jiàn),但用戶只能看到他們有權(quán)限訪問(wèn)的對(duì)象的信息。例如:

  • 如果用戶沒(méi)有權(quán)限訪問(wèn)某個(gè)數(shù)據(jù)庫(kù),他們將無(wú)法從 information_schema.tables 中看到該數(shù)據(jù)庫(kù)的表。
  • 某些情況下,如 ROUTINE_DEFINITION 列在 ROUTINES 表中,如果用戶權(quán)限不足,將顯示 NULL。
  • InnoDB 相關(guān)的表(如名稱以 INNODB_ 開(kāi)頭的表)需要 PROCESS 權(quán)限才能訪問(wèn)。
  • information_schemaSHOW 語(yǔ)句的權(quán)限要求相同。

性能與注意事項(xiàng)

查詢 information_schema 時(shí)需注意性能問(wèn)題:

  • 涉及多個(gè)數(shù)據(jù)庫(kù)的查詢可能較慢,建議使用 EXPLAIN 語(yǔ)句分析和優(yōu)化查詢。
  • 字符列(如 TABLES.TABLE_NAME)通常使用 VARCHAR(N) CHARACTER SET utf8mb3,默認(rèn)校對(duì)規(guī)則為 utf8mb3_general_ci,文件系統(tǒng)的區(qū)分大小寫可能影響搜索結(jié)果。
  • 從 MySQL 8.0.30 開(kāi)始,information_schema 中的某些表(如 columnsstatistics)默認(rèn)顯示生成的不可見(jiàn)主鍵(Generated Invisible Primary Keys)的信息。如果需要隱藏,可以通過(guò)設(shè)置系統(tǒng)變量 show_gipk_in_create_table_and_information_schemaOFF。

應(yīng)用場(chǎng)景

information_schema 在以下場(chǎng)景中非常有用:

  • 數(shù)據(jù)庫(kù)管理:數(shù)據(jù)庫(kù)管理員(DBA)可以使用它來(lái)監(jiān)控和管理 MySQL 服務(wù)器的狀態(tài),例如檢查表的存儲(chǔ)引擎、列的數(shù)據(jù)類型等。
  • 開(kāi)發(fā)和調(diào)試:開(kāi)發(fā)者可以在開(kāi)發(fā)過(guò)程中動(dòng)態(tài)獲取數(shù)據(jù)庫(kù)結(jié)構(gòu)信息,例如在編寫動(dòng)態(tài) SQL 時(shí)獲取表或列的名稱。
  • 權(quán)限審計(jì):可以通過(guò)查詢權(quán)限相關(guān)的表(如 column_privileges)來(lái)審計(jì)用戶的訪問(wèn)權(quán)限。

歷史與發(fā)展

根據(jù) MySQL 文檔,information_schema 是 SQL 標(biāo)準(zhǔn)的一部分,自 MySQL 早期版本起就存在,并不斷擴(kuò)展以支持新功能。2025 年 7 月 19 日,最新版本的 MySQL(如 8.0 和 8.4)繼續(xù)支持和優(yōu)化 information_schema,使其成為數(shù)據(jù)庫(kù)管理和開(kāi)發(fā)的強(qiáng)大工具。

對(duì)比與爭(zhēng)議

與傳統(tǒng)的 SHOW 語(yǔ)句相比,information_schema 提供更標(biāo)準(zhǔn)化的查詢方式,但查詢性能可能不如 SHOW 語(yǔ)句快,尤其在處理大型數(shù)據(jù)庫(kù)時(shí)。根據(jù)社區(qū)討論(如 Stack Exchange),部分用戶認(rèn)為 information_schema 的查詢結(jié)果更全面,但需要注意性能優(yōu)化。

到此這篇關(guān)于MYSQL中information_schema的使用的文章就介紹到這了,更多相關(guān)MYSQL information_schema內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Ubuntu中遠(yuǎn)程連接Mysql數(shù)據(jù)庫(kù)的詳細(xì)圖文教程

    Ubuntu中遠(yuǎn)程連接Mysql數(shù)據(jù)庫(kù)的詳細(xì)圖文教程

    Ubuntu是一個(gè)以桌面應(yīng)用為主的Linux發(fā)行版操作系統(tǒng),這篇文章主要為大家詳細(xì)介紹了Ubuntu中遠(yuǎn)程連接Mysql數(shù)據(jù)庫(kù)的詳細(xì)圖文教程,有需要的小伙伴可以參考下
    2025-04-04
  • sql獲取存儲(chǔ)過(guò)程返回?cái)?shù)據(jù)過(guò)程解析

    sql獲取存儲(chǔ)過(guò)程返回?cái)?shù)據(jù)過(guò)程解析

    這篇文章主要介紹了sql獲取存儲(chǔ)過(guò)程返回?cái)?shù)據(jù)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Docker中如何修改mysql8默認(rèn)加密方式

    Docker中如何修改mysql8默認(rèn)加密方式

    這篇文章主要給大家介紹了關(guān)于Docker中如何修改mysql8默認(rèn)加密方式的相關(guān)資料,文中大概介紹了docker啟動(dòng)命令中添加額外參數(shù)、mysql啟動(dòng)后使用sql修改以及啟動(dòng)前掛載修改好的配置文件等方法,需要的朋友可以參考下
    2023-06-06
  • 在centOS 7安裝mysql 5.7的詳細(xì)教程

    在centOS 7安裝mysql 5.7的詳細(xì)教程

    這篇文章主要介紹了在centOS 7安裝mysql 5.7的詳細(xì)教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2016-12-12
  • mysql連接錯(cuò)誤2013的問(wèn)題及解決

    mysql連接錯(cuò)誤2013的問(wèn)題及解決

    這篇文章主要介紹了mysql連接錯(cuò)誤2013的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • MySQL主從復(fù)制數(shù)據(jù)同步的實(shí)現(xiàn)步驟

    MySQL主從復(fù)制數(shù)據(jù)同步的實(shí)現(xiàn)步驟

    MySQL主從復(fù)制是一種數(shù)據(jù)同步技術(shù),通過(guò)將數(shù)據(jù)從主數(shù)據(jù)庫(kù)服務(wù)器復(fù)制到一個(gè)或多個(gè)從數(shù)據(jù)庫(kù)服務(wù)器來(lái)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • 總結(jié)12個(gè)MySQL慢查詢的原因分析

    總結(jié)12個(gè)MySQL慢查詢的原因分析

    這篇文章主要介紹了總結(jié)12個(gè)MySQL慢查詢的原因分析,慢查詢,都是因?yàn)闆](méi)有加索引。如果沒(méi)有加索引的話,會(huì)導(dǎo)致全表掃描的,更多相關(guān)內(nèi)容需要的朋友可以參考一下
    2022-08-08
  • 關(guān)于com.mysql.jdbc.Driver與com.mysql.cj.jdbc.Driver的區(qū)別

    關(guān)于com.mysql.jdbc.Driver與com.mysql.cj.jdbc.Driver的區(qū)別

    這篇文章主要介紹了關(guān)于com.mysql.jdbc.Driver與com.mysql.cj.jdbc.Driver的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 非常實(shí)用的MySQL函數(shù)全面總結(jié)詳解示例分析教程

    非常實(shí)用的MySQL函數(shù)全面總結(jié)詳解示例分析教程

    這篇文章主要為大家介紹了非常實(shí)用的MySQL函數(shù)的詳解示例分析,文中全面的概括了MySQL函數(shù),并進(jìn)行了詳細(xì)的示例講解,有需要的朋友可以借鑒參考下
    2021-10-10
  • CentOS7使用rpm包安裝mysql 5.7.18

    CentOS7使用rpm包安裝mysql 5.7.18

    這篇文章主要為大家詳細(xì)介紹了CentOS7使用rpm包安裝mysql 5.7.18的相關(guān)步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06

最新評(píng)論