欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > mysql表管理知识记录

mysql表管理知识记录

2025/6/25 0:21:18 来源:https://blog.csdn.net/weixin_43979090/article/details/147890295  浏览:    关键词:mysql表管理知识记录

1.存储引擎
存储引擎是基于表的,创建一个表的时候,必须明确该表的存储引擎。目前mysql的存储引擎至少10种,使用命令"show engines"即可查看mysql服务实例支持的存储引擎。

2.innodb存储引擎和myisam存储引擎的取别
(1)在mysql配置文件my.cnf中的[mysqld]选项组中,参数default-storage-engine配置了MYSQL服务实例的默认存储引擎。
(2)innodb存储引擎是事务安全的,支持外键,如果某张表需要执行大量的增删改操作,那innodb是更好的选择。
(3)myisam存储引擎不是事务安全的,如果某张表需要执行大量的select语句,出于性能方面的考虑,myisam存储引擎更合适。
(4)如果数据库表的存储引擎是innodb,mysql服务实例会在数据库目录中自动创建一个名为表名,后缀名为ibd的文件,表的结构和数据信息都存在这个文件中。
(5)如果数据库表的存储引擎是MYISAM,MYSQL服务实会自动创建一个sdi文件,一个MYD文件,一个MYI文件,分别用于存放表结构信息,表数据信息,表索引信息。

3.对于innodb存储引擎的数据库表而言,存在表空间的概念,innodb表空间分为共享表空间与独享表空间。
(1)共享表空间
MYSQL服务实例承载的所有数据库的所有innodb表的数据信息,索引信息,各种元数据信息以及事务的回滚信息,全部存放在共享表空间文件中。全部存放在共享表空间文件中。默认情况下,该文件位于数据库的根目录下,文件名是ibdata1,且文件的初始大小为10M。
可以使用MYSQL命令"show variables like innodb_data_file_path;“查看该文件的属性
(2)独享表空间
如果将全局系统变量innodb_file_per_table的值设置为ON,那么之后再创建Innodb存储引擎的新表时,这些表的数据信息,索引信息将保存到独享表空间文件中。
(3)独享表空间的使用
set @@global.innodb_file_per_table = ON设置为开启;
在数据库中创建innodb存储引擎的表,例如my_table,新表将使用独享表空间存储数据以及索引信息,默认情况下,独享表空间的文件名为"表名.ibd”,并且位于数据库目录下,独享表空间文件保存了my_table表的数据,索引以及该表的事务回滚等信息。
(4)虽然开启了独享表空间功能,但是任何innodb表的元数据信息都需要放在共享表空间中,因此innodb存储引擎的共享表空间必须存在。另外,创建innodb存储引擎的表my_table后,也会产生重做日志信息。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词