关于Information_schema和Mysql库的问题.

沉沦 2010-12-16 10:40:17


引言
1.Information_schema库里面的表貌似都是临时表的形式存在
2.Mysql库里面在/data下面有物理存储

问题1.

请问为什么trigger是存放到Information_schema库里面在? 难道trigger是临时提取的?不对吧..


问题2.

请问那又什么把function和Stored Procedures存放到Mysql库里面呢?
(function, Stored Procedures)和trigger为什么要以这2种方式存放呢?

...全文
203 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2010-12-16
  • 打赏
  • 举报
回复
Information_schema就是数据词典,MYSQL就是这样设计的,要问什么,只有看看其源码了
ACMAIN_CHM 2010-12-16
  • 打赏
  • 举报
回复
那你是不是还看到 TABLES 这个表? 那你的结论是什么呢? 所有表也在 Information_schema 库中?
沉沦 2010-12-16
  • 打赏
  • 举报
回复
我忘说了。我的Mysql版本是Server version: 5.0.51a-24+lenny4-log (Debian)

1.狼头大哥说:"TRIGGER根本不是放在Information_schema库里"

可我确实是在Information_schema表下面找到了一个TRIGGERS表的,这个表里面也确实存放了
TRIGGERS信息

mysql> show tables;
+---------------------------------------+
| Tables_in_information_schema |
+---------------------------------------+
| CHARACTER_SETS |
| COLLATIONS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS |
| COLUMN_PRIVILEGES |
| KEY_COLUMN_USAGE |
| PROFILING |
| ROUTINES |
| SCHEMATA |
| SCHEMA_PRIVILEGES |
| STATISTICS |
| TABLES |
| TABLE_CONSTRAINTS |
| TABLE_PRIVILEGES |
| TRIGGERS |
| USER_PRIVILEGES |
| VIEWS |
+---------------------------------------+



zuoxingyu 2010-12-16
  • 打赏
  • 举报
回复
问题1.

请问为什么trigger是存放到Information_schema库里面在? 难道trigger是临时提取的?不对吧..

你可以认为Information_schema是个视图库,库里的信息是通过其他库统计得到的,所以它没有物理存储。

问题2.

请问那又什么把function和Stored Procedures存放到Mysql库里面呢?
(function, Stored Procedures)和trigger为什么要以这2种方式存放呢?

function和Stored Procedures在Information_schema里也有统计信息,表名称是ROUTINES.



Information_schema库在5.1后面变得非常重要,一些系统STATUS信息都可以在这里查到。
ACMAIN_CHM 2010-12-16
  • 打赏
  • 举报
回复
[Quote]1.Information_schema库里面的表貌似都是临时表的形式存在[/Quote]不能说是临时表。不过一般的常用说法是动态表。放在内存中,由MYSQLD来维护。

[Quote]2.Mysql库里面在/data下面有物理存储[/Quote]这个是对普通的数据库而言。

[Quote]请问为什么trigger是存放到Information_schema库里面在? 难道trigger是临时提取的?不对吧..[/Quote]TRIGGER根本不是放在Information_schema库里,你的假设是不对的。

[Quote]问题2.

请问那又什么把function和Stored Procedures存放到Mysql库里面呢?[/Quote]不放这儿,那又放哪儿呢? 由于MYSQL本身的设计,它没有把存储过程放在各数据库中,而是放在MYSQL系统数据库中。

[Quote] (function, Stored Procedures)和trigger为什么要以这2种方式存放呢?[/Quote]TRIGGER也是放在MYSQL数据库中的。

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧