csjoz11

导航

2021年9月14日 #

高频数据库 MySQL 面试题

摘要: MySQL 索引使用什么数据结构?为什么用 B+做索引? 使用B+树。 这个问题,可以在脑子里面先思考一下,如果让你来设计数据库的索引,你会怎么设计? 我们还是用Why?What?How?三步法来看这个问题。 为什么会需要索引?索引是什么?索引怎么用的? 再思考为什么需要B+树?B+树是什么?B+树 阅读全文

posted @ 2021-09-14 09:59 csjoz11 阅读(58) 评论(0) 推荐(0) 编辑

索引失效的场景有哪些?索引何时会失效?

摘要: 虽然你这列上建了索引,查询条件也是索引列,但最终执行计划没有走它的索引。下面是引起这种问题的几个关键点。 列与列对比 某个表中,有两列(id和c_id)都建了单独索引,下面这种查询条件不会走索引 select * from test where id=c_id; 这种情况会被认为还不如走全表扫描。 阅读全文

posted @ 2021-09-14 09:06 csjoz11 阅读(113) 评论(0) 推荐(0) 编辑

你写的 SQL 执行慢了,你如何查找原因 ?

摘要: 1. MySQL查询慢是什么体验? 1.1 索引 在数据量不是很大时,大多慢查询可以用索引解决,大多慢查询也因为索引不合理而产生。 MySQL 索引基于 B+ 树,这句话相信面试都背烂了,接着就可以问最左前缀索引、 B+ 树和各种树了。 说到最左前缀,实际就是组合索引的使用规则,使用合理组合索引可以 阅读全文

posted @ 2021-09-14 09:03 csjoz11 阅读(277) 评论(0) 推荐(0) 编辑

XXS, CSRS 以及SQL注入 三大安全详解,如何防御

摘要: 程序员需要掌握基本的web安全知识,防患于未然,你们知道有多少种web安全漏洞吗?这里不妨列举10项吧,你们可以自己去网站找相应的教程来提升自己的 1、命令注入(Command Injection) 2、eval注入(Eval Injection) 3、客户端脚本攻击(Script Insertio 阅读全文

posted @ 2021-09-14 09:03 csjoz11 阅读(847) 评论(0) 推荐(0) 编辑

Redis变慢了,如何快速排查?

摘要: Redis作为内存数据库,拥有非常高的性能,单个实例的QPS能够达到10W左右。但我们在使用Redis时,经常时不时会出现访问延迟很大的情况,如果你不知道Redis的内部实现原理,在排查问题时就会一头雾水。 很多时候,Redis出现访问延迟变大,都与我们的使用不当或运维不合理导致的。 # 使用复杂度 阅读全文

posted @ 2021-09-14 08:49 csjoz11 阅读(143) 评论(0) 推荐(0) 编辑

TCP 为什么是三次握手,而不是两次或四次?

摘要: 下面正经地来回答下这个问题,要搞清楚这个问题,首先得了解TCP究竟是如何保证可靠传输的。 PS:TCP协议中,主动发起请求的一端称为『客户端』,被动连接的一端称为『服务端』。不管是客户端还是服务端,TCP连接建立完后都能发送和接收数据。 起初,服务器和客户端都为CLOSED状态。在通信开始前,双方都 阅读全文

posted @ 2021-09-14 08:49 csjoz11 阅读(55) 评论(0) 推荐(0) 编辑

SQL之联表细节:MySQL JOIN的执行过程

摘要: 对于 MySQL 的 JOIN,不知道大家有没有去想过他的执行流程,亦或有没有怀疑过自己的理解(自信满满的自我认为!);如果大家不知道怎么检验,可以试着回答如下的问题: 1. 驱动表的选择 MySQL 会如何选择驱动表,按从左至右的顺序选择第一个? 2. 多表连接的顺序 假设我们有 3 张表:A、B 阅读全文

posted @ 2021-09-14 08:48 csjoz11 阅读(183) 评论(0) 推荐(0) 编辑

MySQL 高频面试题,最常问

摘要: 1. 什么是索引? 索引是一种数据结构,可以帮助我们快速的进行数据的查找. 2. 索引是个什么样的数据结构呢? 索引的数据结构和具体存储引擎的实现有关, 在MySQL中使用较多的索引有Hash索引,B+树索引等,而我们经常使用的InnoDB存储引擎的默认索引实现为:B+树索引. 3. Hash索引和 阅读全文

posted @ 2021-09-14 08:47 csjoz11 阅读(98) 评论(0) 推荐(0) 编辑

Redis 面试题

摘要: 1、什么是 Redis? Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库。 Redis 与其他 key - value 缓存产品相比有以下三个特点: Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redi 阅读全文

posted @ 2021-09-14 08:47 csjoz11 阅读(27) 评论(0) 推荐(0) 编辑

100 道 Linux 常见面试题

摘要: 一、Linux 概述 1. 什么是Linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设 阅读全文

posted @ 2021-09-14 08:45 csjoz11 阅读(1465) 评论(0) 推荐(0) 编辑

借助Redis锁,完美解决高并发秒杀问题

摘要: 场景:一家网上商城做商品限量秒杀。 1 单机环境下的锁 将商品的数量存到Redis中。每个用户抢购前都需要到Redis中查询商品数量(代替mysql数据库。不考虑事务),如果商品数量大于0,则证明商品有库存。然后我们在进行库存扣减和接下来的操作。 因为多线程并发问题,我们不得不在get()方法内部使 阅读全文

posted @ 2021-09-14 08:44 csjoz11 阅读(206) 评论(0) 推荐(0) 编辑