
今天看着MySQL的关个疑数据字典,突然想到一个问题:为什么MySQL数据字典 information_schema中的于数表名是大写,而performance_schema和其他库中的据字是小写?
带着这个问题,我开始了一些猜测和自我论证。关个疑
首先大小写的于数这个情况是相对不兼容的。
比如在performance_schema中,据字根据关键字user可以找到两个相关的关个疑表。
mysql> show tables like user%; +--------------------------------------+ | Tables_in_performance_schema (user%) | +--------------------------------------+ | user_variables_by_thread | | users | +--------------------------------------+ 2 rows in set (0.00 sec)但是于数如果我改做大写,是站群服务器据字不能识别的,这在其他的关个疑数据库里也是类似的处理方式。
mysql> desc USERS; ERROR 1146 (42S02): Table performance_schema.USERS doesnt exist mysql> select database(); +--------------------+ | database() | +--------------------+ | performance_schema | +--------------------+ 1 row in set (0.00 sec)而在information_schema中,于数则是据字相对兼容的。
mysql> select count(*)from tables; select count(*)from TABLES; +----------+ | count(*) | +----------+ | 383 | +----------+ 1 row in set (0.01 sec) +----------+ | count(*) | +----------+ | 383 | +----------+ 1 row in set (0.00 sec)如果从物理文件的关个疑角度来看,你会发现在MySQL中information_schema这个数据库和其他数据库不同,于数没有一个指定的据字目录存在。
[root@dev01 mysql]# ll total 188796 -rw-r----- 1 mysql mysql 56 Jan 2 12:37 auto.cnf -rw-r----- 1 mysql mysql 5 Mar 13 14:26 dev01.pid drwxr-x--- 2 mysql mysql 12288 Mar 9 10:44 devopsdb drwxr-x--- 2 mysql mysql 4096 Jan 2 12:38 dms_metadata -rw-r----- 1 mysql mysql 1292 Jan 26 19:44 ib_buffer_pool -rw-r----- 1 mysql mysql 79691776 Mar 13 23:27 ibdata1 -rw-r----- 1 mysql mysql 50331648 Mar 13 23:27 ib_logfile0 -rw-r----- 1 mysql mysql 50331648 Mar 13 23:27 ib_logfile1 -rw-r----- 1 mysql mysql 12582912 Mar 13 23:36 ibtmp1 drwxr-x--- 2 mysql mysql 4096 Jan 24 19:04 kmp drwxr-x--- 2 mysql mysql 4096 Jan 2 12:37 mysql -rw-r----- 1 mysql mysql 324407 Mar 13 21:54 mysqld.log drwxr-x--- 2 mysql mysql 4096 Jan 2 12:37 performance_schema drwxr-x--- 2 mysql mysql 12288 Jan 2 12:37 sys drwxr-x--- 2 mysql mysql 4096 Mar 13 23:27 test这个数据的存储就好比Oracle里面的系统表空间,云服务器所以information_schema是名副其实的数据字典库。
而performance_schema则是一个内存库,它的存储引擎是特别的一种,不是InnoDB也不是MyISAM,Memory,而是performance_schema

带着疑问我继续切换到了information_schema中,可以很明显的发现information_schema中的数据字典大多是Memory存储引擎。
mysql> show create table tables \G 云南idc服务商