MySQL大小写规则与存储引擎详解

张开发
2026/4/8 2:25:53 15 分钟阅读

分享文章

MySQL大小写规则与存储引擎详解
目录MySQL在Linux下数据库名、表名、列名、别名大小写规则SQL编写建议默认数据库里都是什么内容1mysql2information_schema3performance_schema4sys表在系统文件中的表示InnoDB存储引擎模式MyISAM存储引擎模式小结MySQL在Linux下数据库名、表名、列名、别名大小写规则数据库名、表名、表的别名、变量名严格区分大小写关键字、函数名在SQL中不区分大小写列名或者字段名与列的别名或字段别名在所有的情况下都忽略大小写。MySQL在Windows的环境下全都不区分大小写。SQL编写建议关键字和函数名全部大写数据库名、表名、表的别名、字段名、字段别名全部小写SQL语句必须以分号结尾。默认数据库里都是什么内容查看当前计算机的数据库SHOW DATABASES;除了第一个用户自定义的dbtest1之外还存在剩余的四个默认系统数据库1mysqlMySQL系统自带的核心数据库存储用户账户以及权限信息一些存储过程、事件的定义信息一些运行过程中产生的日志信息一些帮助信息以及时区信息。2information_schema该数据库保存着MySQL服务器维护的其余数据库的信息例如有哪些表、哪些视图、哪些触发器、哪些列、哪些索引。这些信息不是真实的用户数据是一些描述性信息也称之为“元数据”。在其中还提供了一些以innodb_sys开头的表用于表示内部系统表。3performance_schema主要保存MySQL服务器运行过程中的一些状态信息可以用来监控MySQL服务的各类性能指标。4sys通过视图的形式将2与3结合起来帮助系统管理员与开发人员监控MySQL的技术性能。表在系统文件中的表示InnoDB存储引擎模式表中数据与索引①系统表空间默认情况InnoDB会在数据目录下创建一个名为ibdata1、大小为12M的文件这就是系统表空间在文件系统上的表示他是一个自扩展文件根据实际自己增加文件大小②独立表空间InnoDB在之后的版本中不把各个表的数据存储到系统表空间中而是为每个表都建立独立表空间有多少个表就有多少个独立表空间如上的emp1.ibd文件就会存储emp1表中的数据、索引以及描述表结构的文件在5.7版本之前会有一个独立的文件.frm存储。③系统表空间与独立表空间的设置可以指定使用系统表空间还是独立表空间来存储数据该功能由innodb_file_per_table控制。innodb_file_per_table0 # 0代表使用系统表空间 1代表使用独立表空间MyISAM存储引擎模式先创建一个使用MyISAM存储引擎的表InnoDB是默认引擎CREATE TABLE student_myisam ( id bigint NOT NULL AUTO_INCREMENT, name varchar(64) DEFAULT NULL, age int DEFAULT NULL, sex varchar(2) DEFAULT NULL, PRIMARY KEY (id) )ENGINEMYISAM AUTO_INCREMENT0 DEFAULT CHARSETutf8mb3;在MyISAM中的索引都是二级索引该存储引擎的数据和索引分开存放。小结举例数据库a表b。1、如果表b采用InnoDBdata\a中会产生1个或者2个文件b.frm 描述表结构文件字段长度等如果采用系统表空间模式的数据信息和索引信息都存储在 ibdata1中如果采用独立表空间存储模式data\a中还会产生b.ibd 文件存储数据信息和索引信息此外① MySQL5.7 中会在data/a的目录下生成 db.opt 文件用于保存数据库的相关配置。比如字符集、比较 规则。而MySQL8.0不再提供db.opt文件。② MySQL8.0中不再单独提供b.frm而是合并在b.ibd文件中。2、如果表b采用MyISAMdata\a中会产生3个文件MySQL5.7 中 b.frm 描述表结构文件字段长度等。MySQL8.0 中 b.xxx.sdi 描述表结构文件字段长度等b.MYD (MYData)数据信息文件存储数据信息(如果采用独立表存储模式)b.MYI (MYIndex)存放索引信息文

更多文章