发表于: 2025-04-20 20:20:56
0 99
今天完成的任务:继续学习任务一的深度思考。
学习:24.如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?
什么是唯一索引?
要说唯一索引,的先说索引。
打个比方,字典就是一张表,列面的每个字和解释就是其中的列,而索引就是在目录中对应音节和偏旁的页数,
如果没有索引,就好比字典里没有目录,如果汉字只有几十个,字典只有几页,当我们想找哪个字,翻几页很快可以找出来。可实际上字典里的数字远远不止这一些,
一本字典去找这个字效率太低,因而我们需要索引,直接根据索引找到这个字。
唯一索引,顾名思义,添加了唯一索引的列的数据不能重复
使用场景:
在实际情况中,像qq号,身份证号,手机号这样的数据,肯定是不能重复的,对于这样的字段,我们就应该添加唯一索引
是否需要判断已经有了唯一索引:
继续学习:25.CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?
由于修真院的小课堂打不开,所以自己理解一下。
在创建一条数据是给create_at赋值,
在更新一条数据时,同时更新update_at的值,改为更新时的时间。
应该开放。
继续学习:26.修真类型应该是直接存储Varchar,还是应该存储int?
INT
是一种数值型数据类型,用于存储整数,通常用于主键或索引列。
VARCHAR
是一种字符串数据类型,用于存储变长字符数据,例如姓名、电子邮件、地址等。
结论:
INT
的存储大小固定,更节省空间。VARCHAR
的存储大小取决于实际数据长度,可能会占用较多存储空间。
自己理解为:varchar就可以,如果用数字代替修真类型,也可以用int储存,提高效率。
继续学习:27.varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么?
1.Varchar与char的区别
假如你向一个长度为四十个字符的VARCHAR型字段中输入数据Bill Gates。当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符——字符串Bill Gates的长度。 假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符。字符串的后面会被附加多余的空格。
varchar:存储变长数据,但存储效率没有CHAR高,必须在括号里定义长度,可以有默认值。保存数据的时候,不进行空格自动填充,而且如果数据存在空格时,当值保存和检索时尾部的空格仍会保留。另外,varchar类型的实际长度是它的值的实际长度+1,这一个字节用于保存实际使用了多大的长度。
解决方法:
1.根据需求与实际情况来考虑,不能千篇一律。 比如:用户名,谁的名字会有255/3=85个字符?所以也没必要那么长,但又不能定义成CHAR(),所以给个够用的长度varchar(20)或更少varchar(10)即可,考虑少数民族可以长点。 varchar的长度,最好是在够用(需要适当预测未来需求)且方便管理的前提下尽可能短。
2.经常变化的字段用varchar;知道固定长度的用char;尽量用varchar;超过255字节的只能用varchar或者text;能用varchar的地方不用text;(效率上: char>varchar>text)。
能够用数字类型的字段尽量选择数字类型而不用字符串类型的(电话号码),这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接回逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了
明天完成的任务:把任务一的深度思考全部看完,然后开始走任务二。
评论