MySQL进阶笔记
文章平均质量分 78
程序员拾山
学习技术,分享技术,全网同名
展开
-
在MySQL中使用不等于符号还能走索引吗?
走不走索引,只取决于一个因素,那就是成本。原创 2023-03-05 17:33:54 · 2180 阅读 · 0 评论 -
一文带你了解MySQL的Server层和引擎层是如何交互的?
对于很多开发小伙伴来说,每天写SQL是必不可少的一项工作。那不知道大家有没有深入了解过,当我们的一条SQL命令被执行时,MySQL是如何把数据从硬盘/内存中查出来并展示到用户面前的呢?原创 2023-02-24 19:16:09 · 1059 阅读 · 0 评论 -
MySQL:连explain的type类型都没搞清楚,怎敢说精通SQL优化?
总得来说,我们在进行查询时,查询类型可分为两大类:全部扫描和索引查询。索引查询又可以细分:1,唯一索引等值查询。2,普通索引等值查询。3,普通索引范围查询。4,扫描整个索引树。对于一条查询sql来说,不同的查询类型虽然结果可能是一样的,但是其性能却可能天差地别。原创 2023-02-13 13:27:27 · 888 阅读 · 3 评论 -
MySQL:为什么说应该优先选择普通索引,尽量避免使用唯一索引
在使用MySQL的过程中,随着表数据的逐渐增多,为了更快的查询我们需要的数据,我们会在表中建立不同类型的索引。今天我们来聊一聊,普通索引和唯一索引的使用场景,以及为什么说推荐大家优先使用普通索引,尽量避免使用唯一索引。对于一个普通的二级索引,目的就是为了加速查询,所以我们可能会为表中的某个字段或者某些字段,建立一个普通的二级索引。而对于唯一索引来说,由于其唯一键约束的特性,有时我们会更多的赋予其业务含义。原创 2023-02-13 13:26:21 · 694 阅读 · 0 评论 -
对话面试官:MySQL中int(11)和int(10)有什么区别?
那么对于int类型来说,当定义为无符号int时,最大取值范围是4294967295,数一下长度也就10位,那么难道我们定义int(11)的时候,可以突破int类型的取值上限了吗?对于字符串类型的定义name varchar(20),我们可以清楚的知道,这是表示name这个字段最大长度是20个字符,当name字段的长度超过20字符时,MySQL就会报错。当定义一个无符号int类型,且设置了ZEROFILL属性时,如果数值的长度没有达到显示的宽度时,MySQL会自动的在数值前面补零直至达到定义的宽度。原创 2023-02-06 12:58:49 · 656 阅读 · 0 评论 -
跟同事杠上了,用雪花算法生成的id做主键对MySQL性能有影响?
用雪花算法生成的id做主键,对MySQL性能到底有没有影响?MySQL必须使用连续递增的主键才能发挥最大性能?原创 2023-02-03 13:23:05 · 4088 阅读 · 5 评论 -
对话面试官:MySQL自增主键id快用完了怎么办?
所以,如果你的业务预期会产生很多数据,那么建议你在创建表时,直接使用bigint,无符号的bigint最大值是18446744073709551615,这个数基本可以保证你的业务不受影响了。我们在定义MySQL表时,为了性能考虑,一般会使用MySQL的自增主键id,每个自增id都会定义一个初始值,一般从1开始,然后不停得增加步长(不配置的话步长默认为1)。另外多说几句,建表时采用什么类型的主键,还是要根据具体业务具体分析,合理的主键类型会占用更小的空间,具有更好的性能。可以看到,直接提示主键重复了。原创 2023-02-03 13:21:10 · 857 阅读 · 0 评论 -
被面试官问住了,MySQL两阶段提交是什么鬼?
MySQL通过两阶段提交的机制,保证了redo log和bin log的逻辑一致性,进而保证了数据的不丢失以及主从库的数据一致。原创 2023-02-03 13:18:28 · 619 阅读 · 0 评论 -
有点懵,MySQL使用grant授权后没必要flush privilege?
使用grant命令之后,并不需要再随手加上flush privileges,因为grant 语句会同时修改数据表和内存。只有当我们不规范的直接使用DML语句修改表中权限字段时,才需要使用flush privileges刷新数据。原创 2023-01-28 22:40:35 · 432 阅读 · 0 评论 -
1分钟带你学会MySQL覆盖索引,让你的SQL更高效
覆盖索引是MySQL优化sql性能的一种非常重要而且常用的手段,通过覆盖索引,我们可以直接查询到需要的结果,而不用回表,从而大大减少树的搜索次数,非常明显的提升查询性能。原创 2023-01-28 22:38:19 · 356 阅读 · 2 评论