MySQL 面试题合集(索引篇)

数据库索引高频面试题梳理 引言 数据库中的索引是用来加快查询速度的 B Tree B+ Tree 聚簇索引和非聚簇索引 索引可分为两个大类: 主键索引:主键本身就是一个索引 辅助索引(也称为非主键索引、二级索引):设置主键之外的其他字段为索引 聚簇索引定义: 索引和数据是放在一块的(一个文件存储,主键索引的B+树的叶子节点中存放了索引值和数据行所有字段) 索引的顺序和数据的物理存储一致(因为字段也在B+树的叶子节点中,因此索引按序则整个数据行也是按序的) 非聚簇索引定义: 索引和数据是分开存放的(两个文件存储,索引的 阅读详情

🎈每日定期分享 | 面试求职经验 | 个人成长

开篇寄语
面试不必死记硬背,带着GPT去面试简直降维打击!

为您推荐一款颠覆性的GPT面试助手软件:“会议面试精灵”。这款工具能够实时分析语音内容、智能识别面试问题并生成精准答案,让您轻松应对八股文题目,从容处理各类复杂面试问题。
毕竟八股文在工作中很少使用,仅作为面试的筛选工具,不值得投入过多的精力。

如何获取“会议面试精灵”?
- 直接访问下载链接:https://www.interviewpass.fun/
- 在搜索引擎中输入关键词:“会议面试精灵”(记得加上双引号)进行搜索。


目录

1、什么是索引?

2、索引分别有哪些优点和缺点? 

3、为什么 MySQL 官方建议使用自增主键作为表的主键?

4、自增主键有哪些优缺点? 

5、索引有几种类型?

6、主索引和唯一索引有什么区别?

7、在 InnDB 中主键索引为什么比普通索引的查询性能高?

8、什么叫回表查询?

9、如何查询一张表的所有索引?

10、MySQL 最多可以创建多少个索引列?

11、如何让 like %abc 走索引查询?

12、MySQL 联合索引应该注意什么?

13、联合索引的作用是什么? 

14、什么是最左匹配原则?它的生效原则有哪些?

15、列值为 NULL 时,查询会使用到索引吗?

15、以下语句会走索引么?

16、能否给手机号的前 6 位创建索引?如何创建?

17、什么是前缀索引?

18、为什么要用前缀索引?

19、什么情况下适合使用前缀索引?

20、什么是页?

21、索引的常见存储算法有哪些?

22、InnoDB 为什么要使用 B+ 树,而不是 B 树、Hash、红黑树或二叉树?

23、为什么 InnoDB 要使用 B+ 树来存储索引?

24、唯一索引和普通索引哪个性能更好?

25、MySQL 是如何判断索引扫描行数的多少?

26、MySQL 是如何得到索引基数的?它准确吗?

27、MySQL 如何指定查询的索引?

28、在 MySQL 中指定了查询索引,为什么没有生效?

29、以下 or 查询有什么问题吗?该如何优化?

30、以下查询要如何优化? 表中包含索引:

31、MySQL 会错选索引吗?

32、如何解决 MySQL 错选索引的问题?

33、如何优化身份证的索引?​​​​​​​


1、什么是索引?

索引是一种能帮助 MySQL 提高查询效率的数据结构。

2、索引分别有哪些优点和缺点? 

索引的优点如下:

- 快速访问数据表中的特定信息,提高检索速度。

- 创建唯一性索引,保证数据表中每一行数据的唯一性。

- 加速表与表之间的连接。

- 使用分组和排序进行数据检索时,可以显著减少查询中分组和排序的时间。

索引的缺点:

- 虽然提高了的查询速度,但却降低了更新表的速度,比如 update、insert,因为更新数据时,MySQL 不仅要更新数据,还要更新索引文件;

- 建立索引会占用磁盘文件的索引文件。

使用索引注意事项:

- 使用短索引,短索引不仅可以提高查询速度,更能节省磁盘空间和 I/O 操作;

- 索引列排序,MySQL 查询只使用一个索引,因此如果 where 子句中已经使用了索引的话,那么 order by 中的列是不会使用索引的,因此数据库默认排序可以符合要求的情况下,不要进行排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引;

- like 语句操作,一般情况下不鼓励使用 like 操作,如果非使用不可, 注意 like "%aaa%" 不会使用索引,而- - like "aaa%"可以使用索引;

- 不要在列上进行运算;

- 不适用 NOT IN 和 <> 操作。 ###以下 SQL 有什么问题?该如何优化?

select * from t where f/2=100;

该 SQL 会导致引擎放弃索引而全表扫描,尽量避免在索引列上计算。可改为:

select * from t where f=100*2;

3、为什么 MySQL 官方建议使用自增主键作为表的主键?

因为自增主键是连续的,在插入过程中尽量减少页分裂,即使要进行页分裂,也只会分裂很少一部分;并且自增主键也能减少数据的移动,每次插入都是插入到最后,所以自增主键作为表的主键,对于表的操作来说性能是最高的。

4、自增主键有哪些优缺点? 

优点:

  • 数据存储空间很小;

  • 性能最好;

  • 减少页分裂。

缺点:

  • 数据量过大,可能会超出自增长取值范围;

  • 无法满足分布式存储,分库分表的情况下无法合并表;

  • 主键有自增规律,容易被破解;

综上所述:

        是否需要使用自增主键,需要根据自己的业务场景来设计。

        如果是单表单库,则优先考虑自增主键,如果是分布式存储,分库分表,则需要考虑数据合并的业务场景来做数据库设计方案。

5、索引有几种类型?

分别如何创建? MySQL 的索引有两种分类方式:逻辑分类和物理分类。 按照逻辑分类,索引可分为:

  • 主键索引:一张表只能有一个主键索引,不允许重复、不允许为 NULL;

  • 唯一索引:数据列不允许重复,允许为 NULL 值,一张表可有多个唯一索引,但是一个唯一索引只能包含一列,比如身份证号码、卡号等都可以作为唯一索引;

  • 普通索引:一张表可以创建多个普通索引,一个普通索引可以包含多个字段,允许数据重复,允许 NULL 值插入;

  • 全文索引:让搜索关键词更高效的一种索引。

按照物理分类,索引可分为:

  • 聚集索引:一般是表中的主键索引,如果表中没有显示指定主键,则会选择表中的第一个不允许为 NULL 的唯一索引,如果还是没有的话,就采用 Innodb 存储引擎为每行数据内置的 6 字节 ROWID 作为聚集索引。每张表只有一个聚集索引,因为聚集索引的键值的逻辑顺序决定了表中相应行的物理顺序。聚集索引在精确查找和范围查找方面有良好的性能表现(相比于普通索引和全表扫描),聚集索引就显得弥足珍贵,聚集索引选择还是要慎重的(一般不会让没有语义的自增 id 充当聚集索引);

  • 非聚集索引:该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同(非主键的那一列),一个表中可以拥有多个非聚集索引。

各种索引的创建脚本如下:

-- 创建主键索引
alter table t add primary key add (`id`);
-- 创建唯一索引
alter table t add unique (`username`);
-- 创建普通索引
alter table t add index index_name (`username`);
-- 创建全文索引
alter table t add fulltext (`username`);

6、主索引和唯一索引有什么区别?

- 主索引不能重复且不能为空,唯一索引不能重复,但可以为空;

- 一张表只能有一个主索引,但可以有多个唯一索引;

- 主索引的查询性能要高于唯一索引。

7、在 InnDB 中主键索引为什么比普通索引的查询性能高?

因为普通索引的查询会多执行一次检索操作。比如主键查询 select * from t where id=10 只需要搜索 id 的这棵 B+ 树,而普通索引查询 select * from t where f=3 会先查询 f 索引树,得到 id 的值之后再去搜索 id 的 B+ 树,因为多执行了一次检索,所以执行效率就比主键索引要低。

8、什么叫回表查询?

普通索引查询到主键索引后,回到主键索引树搜索的过程,我们称为回表查询。

参考SQL:

mysql> create table T(
id int primary key, 
k int not null, 
name varchar(16),
index (k))engine=InnoDB;

如果语句是 select * from T where ID=500,即主键查询方式,则只需要检索主键 ID 字段。

mysql>  select * from T where ID=500;
+-----+---+-------+
| id  | k | name  |
+-----+---+-------+
| 500 | 5 | name5 |
+-----+---+-------+

如果语句是 select * from T where k=5,即普通索引查询方式,则需要先搜索 k 索引树,得到 ID 的值为 500,再到 ID 索引树搜索一次,这个过程称为回表查询。

mysql> select * from T where k=5;
+-----+---+-------+
| id  | k | name  |
+-----+---+-------+
| 500 | 5 | name5 |
+-----+---+-------+

也就是说,基于非主键索引的查询需要多扫描一棵索引树。因此,我们在应用中应该尽量使用主键查询。

9、如何查询一张表的所有索引?

SHOW INDEX FROM T 查询表 T 所有索引。

10、MySQL 最多可以创建多少个索引列?

MySQL 中最多可以创建 16 个索引列。

11、如何让 like %abc 走索引查询?

我们知道如果要让 like 查询要走索引,查询字符不能以通配符(%)开始,如果要让 like %abc 也走索引,可以使用 REVERSE() 函数来创建一个函数索引,查询脚本如下:

select * from t where reverse(f) like reverse('%abc');

12、MySQL 联合索引应该注意什么?

联合索引又叫复合索引,MySQL 中的联合索引,遵循最左匹配原则,比如,联合索引为 key(a,b,c),则能触发索引的搜索组合是 a|ab|abc 这三种查询。

13、联合索引的作用是什么? 

联合索引的作用如下:

  • - 用于多字段查询,比如,建了一个 key(a,b,c) 的联合索引,那么实际等于建了key(a)、key(a,b)、key(a,b,c)等三个索引,我们知道,每多一个索引,就会多一些写操作和占用磁盘空间的开销,尤其是对大数据量的表来说,这可以减少一部分不必要的开销;

  • - 覆盖索引,比如,对于联合索引 key(a,b,c) 来说,如果使用 SQL:select a,b,c from table where a=1 and b = 1 ,就可以直接通过遍历索引取得数据,而无需回表查询,这就减少了随机的 IO 操作,减少随机的 IO 操作,可以有效的提升数据库查询的性能,是非常重要的数据库优化手段之一;

  • - 索引列越多,通过索引筛选出的数据越少。

14、什么是最左匹配原则?它的生效原则有哪些?

最左匹配原则也叫最左前缀原则,是 MySQL 中的一个重要原则,说的是索引以最左边的为起点任何连续的索引都能匹配上,当遇到范围查询(>、<、between、like)就会停止匹配。 生效原则来看以下示例,比如表中有一个联合索引字段 index(a,b,c):

  • where a=1 只使用了索引 a;

  • where a=1 and b=2 只使用了索引 a,b;

  • where a=1 and b=2 and c=3 使用a,b,c;

  • where b=1 or where c=1 不使用索引;

  • where a=1 and c=3 只使用了索引 a;

  • where a=3 and b like 'xx%' and c=3 只使用了索引 a,b。

15、列值为 NULL 时,查询会使用到索引吗?

在 MySQL 5.6 以上的 InnoDB 存储引擎会正常触发索引。但为了兼容低版本的 MySQL 和兼容其他数据库存储引擎,不建议使用 NULL 值来存储和查询数据,建议设置列为 NOT NULL,并设置一个默认值,比如 0 和空字符串等,如果是 datetime 类型,可以设置成 1970-01-01 00:00:00 这样的特殊值。

15、以下语句会走索引么?

select * from t where year(date)>2018;

不会,因为在索引列上涉及到了运算。

16、能否给手机号的前 6 位创建索引?如何创建?

可以,创建方式有两种:

alter table t add index index_phone(phone(6));
create index index_phone on t(phone(6));

17、什么是前缀索引?

前缀索引也叫局部索引,比如给身份证的前 10 位添加索引,类似这种给某列部分信息添加索引的方式叫做前缀索引。

18、为什么要用前缀索引?

前缀索引能有效减小索引文件的大小,让每个索引页可以保存更多的索引值,从而提高了索引查询的速度。但前缀索引也有它的缺点,不能在 order by 或者 group by 中触发前缀索引,也不能把它们用于覆盖索引。

19、什么情况下适合使用前缀索引?

当字符串本身可能比较长,而且前几个字符就开始不相同,适合使用前缀索引;相反情况下不适合使用前缀索引,比如,整个字段的长度为 20,索引选择性为 0.9,而我们对前 10 个字符建立前缀索引其选择性也只有 0.5,那么我们需要继续加大前缀字符的长度,但是这个时候前缀索引的优势已经不明显,就没有创建前缀索引的必要了。

20、什么是页?

页是计算机管理存储器的逻辑块,硬件及操作系统往往将主存和磁盘存储区分割为连续的大小相等的块,每个存储块称为一页。

主存和磁盘以页为单位交换数据。数据库系统的设计者巧妙利用了磁盘预读原理,将一个节点的大小设为等于一个页,这样每个节点只需要一次磁盘 IO 就可以完全载入。

21、索引的常见存储算法有哪些?

- 哈希存储法:

以 key、value 方式存储,把值存入数组中使用哈希值确认数据的位置,如果发生哈希冲突,使用链表存储数据;

- 有序数组存储法:

按顺序存储,优点是可以使用二分法快速找到数据,缺点是更新效率,适合静态数据存储;

- 搜索树:

以树的方式进行存储,查询性能好,更新速度快。

22、InnoDB 为什么要使用 B+ 树,而不是 B 树、Hash、红黑树或二叉树?

因为 B 树、Hash、红黑树或二叉树存在以下问题:

B 树:不管叶子节点还是非叶子节点,都会保存数据,这样导致在非叶子节点中能保存的指针数量变少(有些资料也称为扇出),指针少的情况下要保存大量数据,只能增加树的高度,导致IO操作变多,查询性能变低;

Hash:虽然可以快速定位,但是没有顺序,IO 复杂度高;

二叉树:树的高度不均匀,不能自平衡,查找效率跟数据有关(树的高度),并且 IO 代价高;

红黑树:树的高度随着数据量增加而增加,IO 代价高。

23、为什么 InnoDB 要使用 B+ 树来存储索引?

B+Tree 中的 B 是 Balance,是平衡的意思,它在经典 B Tree 的基础上进行了优化,增加了顺序访问指针,在B+Tree 的每个叶子节点增加一个指向相邻叶子节点的指针,就形成了带有顺序访问指针的 B+Tree,这样就提高了区间访问性能:如果要查询 key 为从 18 到 49 的所有数据记录,当找到 18 后,只需顺着节点和指针顺序遍历就可以一次性访问到所有数据节点,极大提到了区间查询效率(无需返回上层父节点重复遍历查找减少 IO 操作)。

索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上,这样的话,索引查找过程中就要产生磁盘 IO 消耗,相对于内存存取,IO 存取的消耗要高几个数量级,所以索引的结构组织要尽量减少查找过程中磁盘 IO 的存取次数,从而提升索引效率。

综合所述,InnDB 只有采取 B+ 树的数据结构存储索引,才能提供数据库整体的操作性能。

24、唯一索引和普通索引哪个性能更好?

对于查询操作来说:普通索引和唯一索引的性能相近,都是从索引树中进行查询;

对于更新操作来说:唯一索引要比普通索引执行的慢,因为唯一索引需要先将数据读取到内存中,再在内存中进行数据的唯一效验,所以执行起来要比普通索引更慢。 ###优化器选择查询索引的影响因素有哪些? 优化器的目的是使用最小的代价选择最优的执行方案,影响优化器选择索引的因素如下:

扫描行数,扫描的行数越少,执行代价就越少,执行效率就会越高;

是否使用了临时表;

是否排序。

25、MySQL 是如何判断索引扫描行数的多少?

MySQL 的扫描行数是通过索引统计列(cardinality)大致得到并且判断的,而索引统计列(cardinality)可以通过查询命令 show index 得到,索引扫描行数的多少就是通过这个值进行判断的。

26、MySQL 是如何得到索引基数的?它准确吗?

MySQL 的索引基数并不准确,因为 MySQL 的索引基数是通过采样统计得到的,比如 InnoDb 默认会有 N 个数据页,采样统计会统计这些页面上的不同值得到一个平均值,然后除以这个索引的页面数就得到了这个索引基数。

27、MySQL 如何指定查询的索引?

在 MySQL 中可以使用 force index 强行选择一个索引,具体查询语句如下:

select * from t force index(index_t)

28、在 MySQL 中指定了查询索引,为什么没有生效?

我们知道在 MySQL 中使用 force index 可以指定查询的索引,但并不是一定会生效,原因是 MySQL 会根据优化器自己选择索引,如果 force index 指定的索引出现在候选索引上,这个时候 MySQL 不会在判断扫描的行数的多少直接使用指定的索引,如果没在候选索引中,即使 force index 指定了索引也是不会生效的。

29、以下 or 查询有什么问题吗?该如何优化?

select * from t where num=10 or num=20;

答:如果使用 or 查询会使 MySQL 放弃索引而全表扫描,可以改为:

select * from t where num=10 union select * from t where num=20;

30、以下查询要如何优化? 表中包含索引:

KEY mid (mid)
KEY begintime (begintime)
KEY dg (day,group)

使用以下 SQL 进行查询:

select f from t where day='2010-12-31' and group=18 and begintime<'2019-12-31 12:14:28' order by begintime limit 1;

答:此查询理论上是使用 dg 索引效率更高,通过 explain 可以对比查询扫描次数。由于使用了 order by begintime 则使查询放弃了 dg 索引,而使用 begintime 索引,从侧面印证 order by 关键字会影响查询使用索引,这时可以使查询强制使用索引,改为以下SQL:

select f from t use index(dg) where day='2010-12-31' and group=18 and begintime< '2019-12-31 12:14:28' order by begintime limit 1;

31、MySQL 会错选索引吗?

MySQL 会错选索引,比如 k 索引的速度更快,但是 MySQL 并没有使用而是采用了 v 索引,这种就叫错选索引,因为索引选择是 MySQL 的服务层的优化器来自动选择的,但它在复杂情况下也和人写程序一样出现缺陷。

32、如何解决 MySQL 错选索引的问题?

删除错选的索引,只留下对的索引;

使用 force index 指定索引;

修改 SQL 查询语句引导 MySQL 使用我们期望的索引,比如把 order by b limit 1 改为 order by b,a limit 1 语义是相同的,但 MySQL 查询的时候会考虑使用 a 键上的索引。

33、如何优化身份证的索引?

在中国因为前 6 位代表的是地区,所以很多人的前六位都是相同的,如果我们使用前缀索引为 6 位的话,性能提升也并不是很明显,但如果设置的位数过长,那么占用的磁盘空间也越大,数据页能放下的索引值就越少,搜索效率也越低。针对这种情况优化方案有以下两种:

- 使用身份证倒序存储,这样设置前六位的意义就很大了;

- 使用 hash 值,新创建一个字段用于存储身份证的 hash 值。

2021年MySQL面试题55道 文章目录前言面试题系列文章传送门MySQL面试题内容1. 简述在MySQL数据库中引擎MyISAM和InnoDB的区别?2. MySQL中有哪几种锁?3. 什么是通用SQL函数?4. MySQL中有哪些不同的表格?5. CHAR和VARCHAR的区别?6. MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?7. myisamchk是用来做什么的?8. 主键和候选键有什么区别?9. 如果一个表有一列定义为TIMESTAMP,将发生什么?10. 列设置为AUTO INCREMENT时,如 阅读详情

相关推荐

MySQL 面试题合集(基础篇)

共享表空间:指的是数据库的所有的表数据,索引文件全部放在一个文件中,默认这个共享表空间的文件路径在 data 目录下。独立表空间:每一个表都将会生成以独立的文件方式来进行存储。共享表空间和独立表空间最大的区别是如果把表放再共享表空间,即使表删除了空间也不会删除,所以表依然很大,而独立表空间如果删除表就会清除空间。覆盖索引是指,索引上的信息足够满足查询请求,不需要再回到主键上去取数据。脏读是一个事务在处理过程中读取了另外一个事务未提交的数据;

interviewpass的博客 2579

关于索引的最常见的十道面试题

这是一篇关于索引的全方位面试题,一共十道面试题,每一道都是精挑细选,并且解答很仔细,包括一些底层原理和一些小细节都有,快来看看吧!!!

loss_rose777的博客 3万+

MySQL 面试题合集(日志篇)

crash-safe 是指发生宕机等意外情况下,服务器重启后数据依然不会丢失的情况。MySQL 为了操作的性能优化,会把数据更新先放入内存中,之后再统一更新到磁盘。当内存数据和磁盘数据内容不一致的时候,我们称这个内存页为脏页;内存数据写到磁盘后,内存的数据和磁盘上的内容就一致了,我们称为“干净页”。

interviewpass的博客 1052

MySQL索引面试题必备

MySQL索引必备面试题

欢迎来到 Baret-H 的博客 1万+

mysql高频面试题合集

1.请你谈谈 MySQL 事务隔离级别,MySQL 的默认隔离级别是什么?p25 为了达到事务的四大特性,数据库定义了 4 种不同的事务隔离级别: READ-UNCOMMITTED(读取未提交):最低的隔离级别,允许脏读,也就是可能读取 到其他会话中未提交事务修改的数据,可能会导致脏读、幻读或不可重复读。  READ-COMMITTED(读取已提交): 只能读取到已经提交的数据。Oracle 等多数数 据库默认都是该级别 (不重复读),可以阻止脏读,但是幻读或不可重复读仍有可能发 生。  REPEAT

贝la的博客 5039

MySQL 面试题合集(性能优化篇)

MySQL 面试题合集(性能优化篇)

interviewpass的博客 2120

精选数据库“索引“常见30道面试题!面试前冲刺

数据库索引在数据库管理系统中起着至关重要的作用,它可以大大提高数据检索操作的性能。面试中,对于数据库索引的深入理解是一个重要的考察点。本文摘要涵盖了关于数据库索引的一系列面试题,涵盖了索引的基本概念、类型、优化和应用等方面的内容。

key_honghao的博客 3637

MySQL 面试题合集(项目篇)

MySQL 面试题合集(项目篇)

interviewpass的博客 984

mysql索引与sql优化面试题(建议收藏)

备注:一开始粗心了,有效接待字段搞错了,导致数据对不上(把sessionHumanValidRecep和sessionHumanSelfValidRecep搞混了),追代码中字段sessionHumanValidRecep​,,看看有没有字段或者后续的查询,弄了半天发现是字段选错了 ...

wwwwwww31311的博客 3347

MySQL 面试题合集(锁篇)

MySQL 面试题合集(锁篇)

interviewpass的博客 1218

【一线大厂Java面试题合集】第32篇-MySQL存储引擎与索引数据结构

MySQL 选择 B+ 树的核心原因:1. 多叉结构 → 树高低 → 磁盘 I/O 次数少2. 非叶子节点不存数据 → 每页能存更多索引 → 树更矮3. 叶子节点双向链表 → 范围查询高效(只需定位起点,沿链表扫描)4. 页式存储 → 与操作系统/磁盘的预读机制完美匹配对比维度聚簇索引非聚簇索引叶子节点存储完整行数据主键值 + 索引列值每张表数量只能有一个(主键)可以有多个查询效率直接获取数据,快需要回表,多一次 I/O插入性能按主键顺序插入快,否则页分裂影响较小。

gaochufukanyongren的博客 19

MySQL面试题合集!

临近秋招,备战暑期实习,祝大家每天进步亿点点!Day13 本篇总结的是 MySQL 相关的面试题,后续会每日更新~ 一、MySQL索引分析以及相关面试题 参考文章:MySQL索引分析以及相关面试题 二、MySQL主从复制与表拆分相关问题总结 参考文章: MySQL主从复制与表拆分相关问题总结 三、MySQL如何解决幻读和不可重复度? 参考文章:MySQL如何解决幻读和不可重复度? 四、MySQL中联表查询条件WHERE和ON的区别? 参考文章:MySQL中联表查询条件WHERE和O.

兴趣使然的草帽路飞 3万+

干货!MySQL常见的面试题+索引原理分析.docx

数据库Mysql索引的本质\Mysql索引的底层原理\Mysql索引的实战经验\MyISAM存储引擎在使用索引查询数据时,会先根据索引查找到数据地址,再根据地址查询到具体的数据。并且主键索引和辅助索引没有太多区别。

【面试题】MySQL常见面试题合集

备战实习,会定期的总结常考的面试题,大家一起加油! ???? 往期文章: 【面试题】计算机网络篇-10道常见面试题p1 【面试题】JVM篇-10道常见面试题p1 【面试题】Java并发篇-10道常见面试题p1 【面试题】Java基础篇-常见面试题总结p1 【面试题】Java基础篇-常见面试题总结p2 参考文章: https://blog.youkuaiyun.com/qq_45966440/category_11098049.html https://csp1999.blog.youkuaiyun.com/art

小皮皮LL的博客 6647

立创开源桌面激光雕刻机DIY全解析:从悬臂结构、Arduino主控到Marlin固件

本文详细解析了基于立创开源平台的桌面激光雕刻机DIY全过程。重点介绍了悬臂式机械结构的设计与优化,阐述了采用Arduino Mega 2560主控与RAMPS 1.4扩展板的经典控制方案,并深入讲解了Marlin固件的关键配置步骤,包括电机步数计算与激光功能启用,为创客和电子爱好者提供了一套完整的从硬件搭建到软件调试的实战指南。

weixin_42510201的博客 383

『言善信』Fiddler工具 — 1、Fiddler介绍与安装

文章目录1、Fiddler简介2、Fiddler功能3、Fiddler工作原理4、Fiddler安装 1、Fiddler简介 Fiddler是强大的抓包工具之一,它能记录所有客户端和服务器之间的HTTP和HTTPS请求,是web调试的利器。 Fiddler是位于客户端和服务端之间的HTTP代理,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改。 Fiddler可以抓取支持HTTP代理的任意程序的数据包,如果要抓取https会

繁华似锦Fighting 1466

MySQL索引篇之索引是什么?

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!ava架构实战电子书+2021年最新大厂面试题。[外链图片转存中…(img-tfNrkrVw-1713252454695)]

2401_83915900的博客 939

K-means在关键词聚类中的尝试

K-means在文本聚类中的尝试 K-means算法是无监督的聚类算法。它的算法思想是:先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。 K-means算法的关键点在于: 初始k个聚类中心的选择 距离的计...

BigPig_LittleTail的博客 5573

mysql面试题合集-基础

本文主要介绍了mysql基础相关知识,不包括分片、数据容灾、故障恢复等

for62的博客 999

前端宝典之七:React性能优化实战精华篇

本文主要讲解实战项目中React性能优化的方法,主要分为三个大的方面:减少不必要的组件更新、组件优化以及tree-shaking,共11个方法

franktaoge的博客 1901

【软件分享】天若OCR文字识别V4.48(翻译功能免费)

软件简介 吾爱破解论坛大佬天若幽心开发的一款OCR文字识别工具。支持快速截图识别,以及文本翻译。 下载地址 蓝奏云盘:点击下载 百度网盘:点击下载(密码:4dm4) 坚果云盘:点击下载 天翼云盘:点击下载 微软云盘:点击下载 使用教程 1、下载后对压缩包进行解压 2、双击天若OCR文字识别.exe 3、发现桌面右下角出现软件图标 4、双击软件图标即可开始截图识别 原帖地址 https://www.52pojie.cn/thread-692917-1-1.html ...

XavierJ的博客 1万+

2025mysql经典面试题合集!

索引是数据库对象,可以提高数据检索的速度。它类似于书的目录,使数据库能够快速定位并检索数据,而不必扫描整个表。索引尤其在处理大量数据时显著提高查询性能。视图是基于SQL语句的结果集的可视化表现。它像一个虚拟表,包含了从一个或多个表中获取的数据。视图的优点包括简化复杂SQL查询、保护数据(通过限制对特定数据的访问)、更改数据格式和表示等。归一化是数据库设计中的一个过程,目的是减少数据冗余和提高数据完整性。它涉及将数据组织到逻辑上的表中,使每个表专注于一个主题或概念。

2401_89221867的博客 2270

CREO图文教程:三维设计案例之矿泉水瓶实例图文教程之详细攻略

草绘,先绘制中心线,绘制底部宽度;对称标注:点击左端点,中心线,左端点,中键即可标注;给定高度;样条曲线绘制外形(双击样条曲线,点击下栏的控制模式(第一个按钮),再拉动控制样条曲线上的各个点)打勾即可得到三维实体。......

走向CTO之路 1931
上一篇: MySQL 面试题合集(基础篇)
下一篇: MySQL 面试题合集(事务篇)
interviewpass
博客等级 码龄3年 521粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值