了解MySql数据库系统自身的数据库

4 篇文章 0 订阅
2 篇文章 0 订阅

默认情况下,我们show schemas;能看到几个数据库,是mysql系统自带的,有:

information_schema
mysql
performance_schema
sys

这些都是mysql系统自带的数据库。


其中information_schema数据库,里面是mysql数据库系统在工作时的存储的所有与mysql业务逻辑相关的数据。mysql的业务就是存储等处理我们用户的数据和操作。

里面有

具体什么意思呢,里面到底有哪些数据表,让我们来
 

use information_schema;

show tables;

查看一下这个库中的所有表吧!

CHARACTER_SETS
COLLATION_CHARACTER_SET_APPLICABILITY
COLLATIONS
COLUMN_PRIVILEGES
COLUMN_STATISTICS
COLUMNS
ENGINES
EVENTS
FILES
INNODB_BUFFER_PAGE
INNODB_BUFFER_PAGE_LRU
INNODB_BUFFER_POOL_STATS
INNODB_CACHED_INDEXES
INNODB_CMP
INNODB_CMP_PER_INDEX
INNODB_CMP_PER_INDEX_RESET
INNODB_CMP_RESET
INNODB_CMPMEM
INNODB_CMPMEM_RESET
INNODB_COLUMNS
INNODB_DATAFILES
INNODB_FIELDS
INNODB_FOREIGN
INNODB_FOREIGN_COLS
INNODB_FT_BEING_DELETED
INNODB_FT_CONFIG
INNODB_FT_DEFAULT_STOPWORD
INNODB_FT_DELETED
INNODB_FT_INDEX_CACHE
INNODB_FT_INDEX_TABLE
INNODB_INDEXES
INNODB_METRICS
INNODB_SESSION_TEMP_TABLESPACES
INNODB_TABLES
INNODB_TABLESPACES
INNODB_TABLESPACES_BRIEF
INNODB_TABLESTATS
INNODB_TEMP_TABLE_INFO
INNODB_TRX
INNODB_VIRTUAL
KEY_COLUMN_USAGE
KEYWORDS
OPTIMIZER_TRACE
PARAMETERS
PARTITIONS
PLUGINS
PROCESSLIST
PROFILING
REFERENTIAL_CONSTRAINTS
RESOURCE_GROUPS
ROUTINES
SCHEMA_PRIVILEGES
SCHEMATA
ST_GEOMETRY_COLUMNS
ST_SPATIAL_REFERENCE_SYSTEMS
ST_UNITS_OF_MEASURE
STATISTICS
TABLE_CONSTRAINTS
TABLE_PRIVILEGES
TABLES
TABLESPACES
TRIGGERS
USER_PRIVILEGES
VIEW_ROUTINE_USAGE
VIEW_TABLE_USAGE
VIEWS

可以看到有很多表,这些表其中有些字眼我们很熟悉,比如几个表:tables(表),views(视图),triggers,schemata(数据库),statistics,files(数据库底层对应文件),events(事件),engines(引擎),columns(字段),keywords(sql代码关键字),plugins(插件)等。

 

用查询语句,可以查询到我们想要知道的mysql服务器的系统相关的数据。

 

比如我们可以查看一下tables表来查看一下整个这个mysql服务器的所有表:
 

use information_schema;

select * from tables;

查询出来就可以看到有很多条数据,能够知道这个sql服务器上有哪些表,你创建的表和mysql系统的表,都有,包含所有数据库的表,可以用where筛选出某个库的表。

字段有table_schema,table_name,table_type,create_time。很清晰。

 

现在我们再来查询一下columns表,查出一个我们的叫做plan的表中有哪些字段、以及字段的描述。

use information_schema;
select column_name,column_comment from columns
    where table_name='plan' and table_schema='testapp'

语句执行后,就可以查出来 testapp数据库中 ->plan表中 -> 的 所有字段和字段的描述


 mysql库中,也有一些表。

其中我们一般比较关心的就是那个user表。user表中存储的是mysql数据库服务器的登录用户信息,里面是用户名、密码、密码加密方式、连接地址等字段。更改这个表中的mysql服务器登录帐号是可以生效的,比如改root帐号的密码,笔者以前试过。


performance_schema库,顾名思义,是mysql数据库系统运行时的性能数据。

MySQL WorkBench这个mysql客户端中,连接上服务器之后的服务器普通、性能状态显示,就是查询这个库中的数据实现的。


sys库,顾名思义,就很“内核”了。(就像Windows系统的system32目录一样内核,嘿嘿)

那么让我们来查询一下看一下里面究竟是什么内容。

有很多表,以及很多前缀带有$符号的表,应该是更加内核的表吧。

我挑了几个有趣的表查询了一下:host_summary,sys_config,session,version。

 

host_summary(似乎是所有连接进来的网络主机的概况,执行了多少个语句了,语句总共占了多少时间了,当前多少连接了等等诸如此类):

localhost24631.63 s662.28 us80280517.62 ms2411.86 MiB128.08 MiB

 

sys_config(系统配置,不晓得直接更改这个表能不能对mysql系统程序的配置生效):

diagnostics.allow_i_s_tablesOFF2019-03-29 23:58:05 
diagnostics.include_rawOFF2019-03-29 23:58:05 
ps_thread_trx_info.max_length655352019-03-29 23:58:05 
statement_performance_analyzer.limit1002019-03-29 23:58:05 
statement_performance_analyzer.view 2019-03-29 23:58:05 
statement_truncate_len642019-03-29 23:58:05 
    

 

session(看来mysql的实现架构也是有session这个概念的,为了性能而生):

488root@localhosttianSleep 16   0 ps00000NO 75.89 us415.66 KiB   366.36 usCOMMITTEDYES3428MySQLWorkbench
499root@localhostsysQuery 0select * from session LIMIT 0, 100050.17 ms 1.00 ms168960040YES  1.32 MiB   49.54 msACTIVEYES3428MySQLWorkbench
444sql/event_scheduler SleepWaiting on empty queue          NO  16.42 KiB        

 

version(很简单,就mysql的版本):

2.0.08.0.15

 

 

作为基本的库表操作级别的人物,我觉得还是不要改这个库里面的数据为好。除非你哪天对某个表的数据更改有所想法,想要实验实验观察结果总结方法,这也倒可以有~~


我觉的这些内核的数据库,在数据库大佬手里应该是有很多精通级的奇端操作的,但我们小白不懂就还是查询查询,做些简单的修改密码的操作吧~~。


 

这么看来,也就是说,MySql数据库系统程序自身也使用自身的数据库功能进行存储自身程序运行时的数据。

 

mysql系统的数据库和表的,建议不要随意更改它的数据,查查就行了,免得把mysql搞崩,运行出错就不好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值