mysql datetime比较_mysql小知识-那些需要知道的知识点

8b093bc4c22266218c1f5678cebb8aee.png

mysql小知识

1. int(1)能限制数据的长度是一位吗?

int的长度是固定的四个字节,取值范围有符号(-2147483648,2147483647)无符号是(0,4294967295),int后面的n只是表示显示的宽度,在zerofill的情况,不足的部分显示时前面补零,超出了完整显示,所以这个n没有什么具体的用处,在使用时可以任意指定,为了表示真实,我们通常设置为10

2.decimal的长度是多少?

在要求精度很高的情景,float与double会出现数据误差,decimal类型是必须的,decimal有两个参数,decimal(M,N),长度M,表示整个数据的长度,整数部分与小数部分之和,小数部分的长度为N,那么整数部分为M-N,如果插入的数据超出这个范围,将会失败

3. datetime与timestamp如何选择?

datetime表示的时间范围为1000-9999年,而timestamp的时间范围是1970-2038年,如果自信能做到百年老店,timestamp肯定是不能用的

datetime的长度5.6版本之前是8个字节,之后是5个字节,timestamp是四个字节,如果对空间非常敏感,timestamp占用的空间少那么一点点,需要抠这一个字节码吗?

执行效率上在有索引的情况下差距不大

在排查问题时的直观上,datetime一眼就看出是哪个时间,timestamp通常表示为一个整数,需要转化

所以怎么选择了,我推荐就用datetime,直观、范围大、效率不错、空间上差距不大

4. 业务表中需要text或blob类型数据类型怎么办?

text和blob类型都是固定长度,不管有无数据,都会占用指定的空间,在生产环境中,需要把大字段放在单独的表中,用主键关联

5. varchar(n)中的n代表什么意思?

代表字符的个数,并不是占用空间的字节数

6. 可以用varchar(60000)吗?

mysql中每一行数据都有65535字节的限制,还有其他的字段需要占用空间,每个字符占用2/3个字节,编码方式不一样,所以达不到理想的长度,上述的60000当然也用不了,用提示超出长度的错误

7.emoji表情如何存储?

emoji表情看起来是字符串,是一种特殊的字符,utf-8存储会报编码错误,utf-8的超级utf8mb4可以存储,每个字符占用四个字节,要将表的编码集设置为utf8mb4,仅仅设置字段的编码集可能不生效,mysql5.7以后推荐使用utf8mb4编码集了。

8. 如何修改索引?

先删除在新建

drop index index_name on table_name;

create index index_name on table_name(column);

9.主键索引与唯一索引谁的效率高?

mysql的数据是按照主键索引组织的,如果指定了主键就使用指定的主键,如果没有指定主键,采用第一个唯一索引作为索引内部主键索引,如果不存在唯一索引,mysql自动生成一个主键作为索引组织,这个索引是聚集索引,对于其他的非聚集索引来说,索引的B+树叶子节点存储的是主键索引的主键。在效率上,主键索引效率与没有主键的第一个唯一索引相同,比其他索引的效率高。

10.在建索引的过程中,哪些列应该被索引了?

被查询作为条件的列;用于被关联表的列;用于排序分组的列;

11. 哪些字段不必要创建索引?

选择性低的字段;很少查询的列;大数据类型字段;含null值的字段;

12. 哪些索引会失效?

扫描的记录数超过全表的30%;联合索引中第一个条件不是最左索引列;模糊查询中左侧使用了%;使用了函数运算;使用了or/!=/not null;

13.事物的特性是什么?

ACID的表示的是原子性(Atomicity)、一致性(consistency)、隔离性(isolation)、持久性(Durability)

14. truncate与delete的区别?

truncate删除全表的内容,效率比较高,连带自增计数也会被重置;delete可以指定删除的数据,删除后会出现存储碎片,效率比较低

15.innoDB的事物隔离级别有哪些?各有什么特点?

未提交读(read uncommitted) 读到别人未提交的,会产生脏读

提交读(read committed)解决了脏读问题,会产生幻读

可重复读(repeatable read), 解决脏读与幻读,mysql的默认隔离级别,采用MVCC多版本并发控制解决幻读的问题,同时使用了间隙锁结合行级锁,会锁定一个上下区间;

串行化(serializable)串行操作,不会产生问题,但是效率比较低,不能很好的利用多核cpu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值