首页
学习
活动
专区
圈层
工具
发布

mysql查看系统表

基础概念

MySQL的系统表是存储数据库元数据的特殊表,它们提供了关于数据库结构、权限、存储引擎等信息。这些表通常位于information_schema数据库中,这是一个只读的虚拟数据库,包含了多个只读表,用于展示关于MySQL实例中所有其他数据库的信息。

相关优势

  • 信息获取:通过查询系统表,可以获取数据库的结构信息,如表名、列名、数据类型等。
  • 权限管理:可以查看和管理用户权限和角色。
  • 性能监控:可以监控数据库的性能指标,如查询缓存状态、表锁情况等。

类型

  • SCHEMATA:包含所有数据库的信息。
  • TABLES:包含数据库中所有表的信息。
  • COLUMNS:包含表中所有列的信息。
  • STATISTICS:包含表的索引信息。
  • USER_PRIVILEGES:包含全局权限信息。
  • SCHEMA_PRIVILEGES:包含数据库级别的权限信息。
  • TABLE_PRIVILEGES:包含表级别的权限信息。
  • COLUMN_PRIVILEGES:包含列级别的权限信息。

应用场景

  • 数据库备份:在备份前,可以通过查询系统表来获取需要备份的表和列的信息。
  • 权限审计:定期检查系统表中的权限信息,确保没有未经授权的访问。
  • 性能调优:通过查询系统表中的性能指标,可以发现潜在的性能瓶颈。

示例代码

以下是一些常用的SQL查询示例,用于查看MySQL的系统表信息:

代码语言:txt
复制
-- 查看所有数据库
SELECT SCHEMA_NAME FROM information_schema.SCHEMATA;

-- 查看特定数据库中的所有表
SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_name';

-- 查看特定表的所有列
SELECT COLUMN_NAME, DATA_TYPE FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'your_table_name';

-- 查看特定表的索引信息
SELECT INDEX_NAME, COLUMN_NAME FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'your_table_name';

参考链接

常见问题及解决方法

问题:查询系统表时出现权限不足的错误

原因:当前用户没有足够的权限来访问系统表。

解决方法:

  1. 提升用户权限:
  2. 提升用户权限:
  3. 使用具有足够权限的用户:
  4. 使用具有足够权限的用户:

问题:查询系统表时出现性能问题

原因:系统表可能包含大量数据,导致查询变慢。

解决方法:

  1. 优化查询:
    • 使用索引优化查询条件。
    • 限制返回的数据量,例如使用LIMIT子句。
  • 定期维护系统表:
    • 定期清理和维护系统表,确保其性能良好。

通过以上方法,可以有效地查看和管理MySQL的系统表,解决常见的权限和性能问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • MySQL ·查看数据库表详情

    MySQL 查看数据库表详情 查看所有数据库容量大小 select table_schema as '数据库', sum(table_rows) as '记录数', sum(truncate(data_length...在 mysql 中,使用 delete 命令删除数据后,会发现这张表的数据文件和索引文件却奇怪的没有变小。...这是因为 delete 操作并不会真的把数据删除,mysql 实际上只是给删除的数据打了个标记,标记为删除,因此你使用 delete 删除表中的数据,表文件在磁盘上所占空间不会变小,我们这里暂且称之为假删除...注意:在 optimize table 运行过程中,MySQL 会锁定表,所以要在空闲时段执行。...查看前后效果可以使用 show table status 命令,返回结果中的 data_free 即为空洞所占据的存储空间。

    19.7K30

    MYSQL-系统库表(mysql)

    MySQL(本章节) PostgreSQL MongoDB Redis Etcd 我们在部署完成MYSQL以后,系统会自动生成4个库,下面几个小节我们对这库表做一个简单介绍。...用户权限管理表 user - 用户账户和全局权限,记录了用户及权限信息,我们在前面的 MYSQL-用户 (User)和权限(Privilege)对这个表介绍,更新他可以重置密码,虽然严重不推荐。...其他系统表 event - 事件调度器事件 func - 用户定义函数 plugin - 服务器插件 proc - 存储过程和函数定义,前面创建的信息就存储在这里。...、GRANT等)来维护系统数据,以避免破坏系统完整性。...我们一些日常查询,有部分信息就来自于这个表,了解这个表对你的日常运维可能不会太大用处,绝大部分操作都不需要操作这些表,但是对于理解MYSQL还是有点用处的。

    33810

    MySQL查看数据库表容量大小

    查看一个数据中所有表的相关信息: (1)可以在命令下使用show table status \G命令查看: (2)如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema...在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHEMA : 数据库名 TABLE_NAME:表名 ENGINE:所使用的存储引擎 TABLES_ROWS:记录数 DATA_LENGTH...所以要知道一个表占用空间的大小,那就相当于是 数据大小 + 索引大小 即可。...例:查看mysql库容量大小 select table_schema as '数据库', sum(table_rows) as '记录数', sum(truncate(data_length/1024...'; 4.查看指定数据库各表容量大小 例:查看mysql库各表容量大小 select table_schema as '数据库', table_name as '表名', table_rows as

    8.9K20

    MySQL查看数据库表容量大小

    查看一个数据中所有表的相关信息: (1)可以在命令下使用show table status \G命令查看: (2)如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,可以打开MySQL的 information_schema...在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHEMA : 数据库名 TABLE_NAME:表名 ENGINE:所使用的存储引擎 TABLES_ROWS:记录数 DATA_LENGTH...所以要知道一个表占用空间的大小,那就相当于是 数据大小 + 索引大小 即可。...例:查看mysql库容量大小 select table_schema as '数据库', sum(table_rows) as '记录数', sum(truncate(data_length/1024...'; 4.查看指定数据库各表容量大小 例:查看mysql库各表容量大小 select table_schema as '数据库', table_name as '表名', table_rows as

    24.4K01

    mysql.ibd 文件解析 (sdi page) (非debug模式下查看隐藏系统表)

    导读在mysql 8.0版本,系统表的存储引擎由myisam改为了innodb, @@datadir/mysql目录下一堆的数据文件通通放到@@datadir/mysql.ibd文件中了....(也顺便为 ibd2sql 2.0 做准备)分析我们先登录数据库, 随便查看张mysql库下面的表的DDLshow create table mysql.engine_cost;发现使用的表空间都是mysql...我们查看该表空间的路径:general tablespace 可以存储多个表select * from information_schema.files where TABLESPACE_NAME='mysql...8.0的系统表使用innodb存储引擎, 存放在mysql.ibd文件中, 是general tablespace类型, 即多个系统表都存放在一个表空间里面....(虽然只要读权限就行, 但稳一手)系统表的信息比较敏感,不要随便传(里面有mysql.user表的啊)参考 https://github.com/ddcw/ibd2sqlhttps://dev.mysql.com

    2K30

    MySQL常用系统表汇总

    元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。...需要有show views权限,否则无法查看视图信息 TRIGGERS 提供了关于触发程序的信息。...必须有super权限才能查看该表 performance_schema PERFORMANCE_SCHEMA这个功能默认是关闭的。...在mysql数据库中,有mysql_install_db脚本初始化权限表,存储权限的表 mysql数据库部分表说明 表名 注释 user 用户列、权限列、安全列、资源控制列 db 用户列、权限列 host...show databases 显示mysql中所有数据库的名称 show processlist 显示系统中正在运行的所有进程,也就是当前正在执行的查询。

    4.7K31

    系统日志信息查看一览表

    [TOC] 系统日志查看 wevtutil 命令 描述:Windows 事件命令行实用程序,用于检索有关事件日志和发布者的信息,安装和卸载事件清单,运行查询以及导出、存档和清除日志。...#Step1 查询所有登录、注销相关的日志语法:(需查看Windows常见安全事件日志ID汇总) wevtutil qe security /rd:true /f:text /q:"*[system/eventid...wevtutil qe Application /c:3 /rd:true /f:text #4.系统关闭和开启时间记录(注意/q需要采用XPATH路径) wevtutil qe System /c:...8个小时视差 #5.以下示例使用 XML 格式显示有关本地系统日志的配置信息。...wevtutil im myManifest.man /rf:^%systemroot^%/System32/wevtutil.exe WeiyiGeek. #9.查看日志的大小及其建立信息 C:\Windows

    1.5K20

    系统表空间-mysql详解(四)

    在mysql5.6.6之前是默认存在系统表空间(system tablespace),他是自扩展文件,随着数据越多会越大。...Frm文件就是前面说的存储表结构,ibd文件就是存储索引加真实数据的。 当然这两个都可以根据参数来指定使用系统表空间还是独立表空间。...还有一些其他文件,mysql服务进程文件,日志文件,redo日志,undo日志等一些文件。 另外mysql系统数据库有哪些呢? Mysql:核心数据库,存着用户账户权限等。...系统表空间结构 因为整个mysql系统只有一个系统表空间,所以会多一些结构来存储整个表空间,并且他的space_id为0。...但是这些表我们不能真实的访问,我们可以在前面说过的information_schema数据库里找到对应的查看表来查询这些数据,比如innodb_sys_tables就对应前面说的system_table

    2.3K10

    系统应用进程查看命令一览表

    1.系统设备驱动 mode 命令 描述:MODE命令配置系统设备更改CMD配置 基础语法: 串行端口: MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=...,制作另外的操作系统实例副本,可为其添加开关。...#该值表示在 NTLDR 加载默认的操作系统之前可供用户从启动加载程序画面选择操作系统的秒数,如果该值为 0,则 NTLDR 将不显示启动加载程序画面而直接启动默认的操作系统。 ...wake_from_S2_supported 返回支持从深睡眠状态唤醒系统的所有设备。 wake_from_S3_supported 返回支持从最深睡眠状态唤醒系统的所有设备。...wake_programmable 列出用户可配置的从某个睡眠状态唤醒系统的设备。 wake_armed 列出当前配置为从任何睡眠状态唤醒系统的设备。

    1.8K41
    领券