mysql数据库表设计原则-mysql数据库表设计思路(4-12-42)
更新时间:2024-09-15 分类:MySQL 浏览量:2
MySQL本文目录一览:
- 1、关于数据库三大设计范式浅析
- 2、如何正确建立MYSQL数据库索引
- 3、关于mysql数据库字段的设计(mysql数据库表的设计)
关于数据库三大设计范式浅析
数据库三大范式最简单的解释如下:第一范式(1NF):字段不可再拆分。第二范式(2NF):表中任意一个主键或任意一组联合主键,可以确定除该主键外的所有的非主键值。
第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
级别不同 3NF:满足3NF范式需要先满足第一范式跟第二范式。BCNF:满足BCNF范式需要先满足3NF范式。应用场景不同 3NF:用于数据库设计初级阶段。BCNF:用于数据库设计的详细阶段。
满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般来说,数据库只需满足第三范式(3NF)就行了。
如何正确建立MYSQL数据库索引
1、usernname,city,age上建立单列索引,让该表有3个单列索引,查询时和上述的组合索引效率也会大不一样,远远低于我们的组合索引。虽然此时有了三个索引,但MySQL只能用到其中的那个它认为似乎是最有效率的单列索引。
2、真实的情况是,上面3层的B+Tree可以表示上百万的数据,上百万的数据只发生了三次I/O而不是上百万次I/O,时间提升是巨大的。
3、在多个列上创建索引通常并不能很好的提高MySQL查询性能,虽然说MySQL 0之后引入了索引合并策略,可以将多个单列索引合并成一个索引,但这并不总是有效的。
4、且组合索引有一些副作用,如索引尺寸可能比数据本身大,因为组合索引的组合条目多。所以在实际应用中,要量身定做,使用慢查询分析工具分析。 开启索引缓存,直接在内存中查找索引,不用再磁盘中。
5、如何建立索引 建立索引的方法取决于你使用的数据库管理系统。以下是几种常见的数据库管理系统建立索引的方法:MySQL 在MySQL中,你可以使用CREATE INDEX语句来创建索引。
6、创建唯一性索引,保证数据库表中每一行数据的唯一性。加快数据的检索速度,这也是创建索引的最主要的原因。减少磁盘IO(向字典一样可以直接定位)。通过创建唯一索引可以保证数据库表中每一行数据的唯一性。
关于mysql数据库字段的设计(mysql数据库表的设计)
1、可以用逗号分隔开啊,但是这个字段的长度得大一点。比如varchar(255),要是还不够可以用text类型。或者干脆一张图片一条数据库记录。这样图片对应的内容也可以存在一条记录里。
2、也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。第三范式3Nf:所有字段必须与主键直接相关,而不是间接相关。
3、将字段设置为not null 还出于另外一种考虑:mysql表的列中包含null的话,那么该列不会包含在所有中。