mysql建表的数据都存哪了
时间: 2024-04-04 15:33:12 浏览: 103
MySQL建表的数据存储在数据库中,通常是以文件的形式存储在磁盘上。MySQL将数据库分成多个文件,每个文件代表数据库的一个表或索引。在文件系统中,每个数据库都存储在一个目录中,目录的名称就是数据库的名称。每个表都存储在一个文件中,文件的名称就是表的名称,文件以.frm作为扩展名。表的数据存储在以.ibd作为扩展名的文件中。索引数据存储在以.ibd作为扩展名的文件中。同时,MySQL还使用redo log和undo log来保证数据的一致性。redo log和undo log的数据也存储在磁盘上。
相关问题
数据库存double建表报错怎么办
如果您在创建数据库表时,存储 double 类型的字段出现报错,可能是以下原因:
1. 数据库不支持 double 类型,例如 MySQL 中使用 DECIMAL 类型代替 double 类型。
2. 数据库表中已经存在相同名称的字段。
3. 数据库表中已经存在相同的约束条件,例如主键或唯一性约束。
4. 数据库表中已经存在相同的索引。
解决方法:
1. 检查数据库是否支持 double 类型,如果不支持则使用相应的数据类型代替。
2. 修改字段名称,确保每个字段都有不同的名称。
3. 删除重复的约束条件,确保每个约束条件都是唯一的。
4. 删除重复的索引,确保每个索引都是唯一的。
5. 如果以上方法都无法解决问题,可以考虑重新创建数据库表。
数据库建表的注意事项
MySQL 和 MongoDB 两者都是免费开源的数据库。在建表时,需要注意以下几点:
1. 遵循面向对象原则,保证每列与主键相关。
2. 遵循表职能单一性原则,如果一张表负责了两个或两个以上的职责,那么该表应进行拆分。
3. 遵循表字段与表直接关联原则,如果一个字段与当前表是间接关联的,那么就该创建一张新的表来保存该字段。
4. 遵循字段最小原子化原则,一个字段如果包含了多个信息或含义,则该字段就应该拆成多个字段。
5. 遵循字段名唯一原则,所有字段不允许单个单词形式存在,应该使用有意义的名称。
6. 不创建外键关联,只是外键关系,设计中的外键仅是为了让大家知道其对应的表才写进去的,实际并不需要在数据库中创建外键。
7. 尽量少使用存储过程,除非某个功能对性能要求非常高,且没办法通过存储过程以外的方式来提升性能时,才考虑使用存储过程。
8. 应针对所有表的主键和外键建立索引,有针对性的建立组合属性的索引,提高检索效率。
9. 必须建立业务主键,除自增id之外,需要使用业务主键,常使用”业务前缀+时间戳+随机数”组成,实现简单,与数据库无关,移植性较好。
10. 所有字段不允许空值,varchar类型默认统一设置为”Empty String”,此处不使用NULL。区别:NULL,默认存为(Null),指的是对象;Empty String默认存为空串””,在java中进行非空判断存在区别userId==null/userId.equals(“”);数值类型默认为0。
11. 表中字段根据数据类型统一,数值类:bigint,金额:decimal,状态:tinyint,时间:datetime。
12. 每张表需要建立索引,建立索引方式:选取使用频率最高的字段作为索引字段。
阅读全文