
mysql
文章平均质量分 94
程序员大彬
非科班转码,校招拿了多家互联网中大厂offer,专注分享Java技术干货
展开
-
这可能是最全面的MySQL面试八股文了
MySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。索引是存储引擎用于提高数据库表的访问速度的一种数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。索引一般存储在磁盘的文件中,它是占用物理空间的。如果 SQL 语句中用到了组合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个组合索引去进行匹配。当遇到范围查询(原创 2024-01-19 08:06:21 · 1098 阅读 · 0 评论 -
一天吃透MySQL面试八股文
MySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。索引是存储引擎用于提高数据库表的访问速度的一种数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。索引一般存储在磁盘的文件中,它是占用物理空间的。如果 SQL 语句中用到了组合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个组合索引去进行匹配。当遇到范围查询(原创 2024-01-06 09:50:56 · 859 阅读 · 0 评论 -
一天吃透MySQL面试八股文
MySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。索引是存储引擎用于提高数据库表的访问速度的一种数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。索引一般存储在磁盘的文件中,它是占用物理空间的。如果 SQL 语句中用到了组合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个组合索引去进行匹配。当遇到范围查询(原创 2023-12-17 20:39:42 · 966 阅读 · 0 评论 -
这可能是最全面的MySQL面试八股文了
MySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。索引是存储引擎用于提高数据库表的访问速度的一种数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。索引一般存储在磁盘的文件中,它是占用物理空间的。如果 SQL 语句中用到了组合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个组合索引去进行匹配。当遇到范围查询(原创 2023-05-22 22:18:02 · 660 阅读 · 0 评论 -
MySQL高频面试题
MySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。索引是存储引擎用于提高数据库表的访问速度的一种数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。索引一般存储在磁盘的文件中,它是占用物理空间的。如果 SQL 语句中用到了组合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个组合索引去进行匹配。当遇到范围查询(原创 2023-05-05 08:25:28 · 2214 阅读 · 0 评论 -
这可能是最全面的MySQL面试八股文了
MySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。索引是存储引擎用于提高数据库表的访问速度的一种数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。索引一般存储在磁盘的文件中,它是占用物理空间的。如果 SQL 语句中用到了组合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个组合索引去进行匹配。当遇到范围查询(原创 2023-04-25 09:09:15 · 1992 阅读 · 0 评论 -
一天吃透MySQL面试八股文
MySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。索引是存储引擎用于提高数据库表的访问速度的一种数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。索引一般存储在磁盘的文件中,它是占用物理空间的。如果 SQL 语句中用到了组合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个组合索引去进行匹配。当遇到范围查询(原创 2023-04-13 08:38:26 · 834 阅读 · 0 评论 -
SELECT COUNT(*) 会造成全表扫描?回去等通知吧
SELECT COUNT(*)会不会导致全表扫描引起慢查询呢?网上有一种说法,针对无 where_clause 的COUNT(*),MySQL 是有优化的,优化器会选择成本最小的辅助索引查询计数,其实反而性能最高,这种说法对不对呢针对这个疑问,我首先去生产上找了一个千万级别的表使用 EXPLAIN 来查询了一下执行计划结果如下如图所示: 发现确实此条语句在此例中用到的并不是主键索引,而是辅助索引,实际上在此例中我试验了,不管是 COUNT(1),还是 COUNT(),MySQL 都会用成本最小。原创 2023-04-12 22:30:35 · 274 阅读 · 0 评论 -
三天吃透MySQL面试八股文
MySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。索引是存储引擎用于提高数据库表的访问速度的一种数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。索引一般存储在磁盘的文件中,它是占用物理空间的。如果 SQL 语句中用到了组合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个组合索引去进行匹配。当遇到范围查询(原创 2023-04-01 15:48:24 · 1291 阅读 · 0 评论 -
order by是怎么工作的?
在你开发应用的时候,一定会经常碰到需要根据指定的字段排序来显示结果的需求。还是以我们前面举例用过的市民表为例,假设你要查询城市是“杭州”的所有人名字,并且按照姓名排序返回前 1000 个人的姓名、年龄。这个语句看上去逻辑很清晰,但是你了解它的执行流程吗?今天,我就和你聊聊这个语句是怎么执行的,以及有什么参数会影响执行的行为。本文已经收录到Github仓库,该仓库包含等核心知识点,欢迎star~如果访问不了Github,可以访问gitee地址。原创 2023-03-28 23:06:58 · 1430 阅读 · 0 评论 -
MySQL最大建议行数 2000w,靠谱吗?
在 mysql 中索引的数据结构和刚刚描述的页几乎是一模一样的,而且大小也是 16K, 但是在索引页中记录的是页 (数据页,索引页) 的最小主键 id 和页号,以及在索引页中增加了层级的信息,从 0 开始往上算,所以页与页之间就有了上下层级的概念。所以,在保持相同的层级(相似查询性能)的情况下,在行数据大小不同的情况下,其实这个最大建议值也是不同的,而且影响查询性能的还有很多其他因素,比如,数据库版本,服务器配置,sql 的编写等等,MySQL 为了提高性能,会将表的索引装载到内存中。原创 2023-03-28 07:47:45 · 1049 阅读 · 0 评论 -
三天吃透MySQL面试八股文
MySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。索引是存储引擎用于提高数据库表的访问速度的一种数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。索引一般存储在磁盘的文件中,它是占用物理空间的。如果 SQL 语句中用到了组合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个组合索引去进行匹配。当遇到范围查询(原创 2023-03-27 08:16:23 · 1058 阅读 · 0 评论 -
这几个SQL语法的坑,你踩过吗
数据库编译器产生执行计划,决定着SQL的实际执行方式。但是编译器只是尽力服务,所有数据库的编译器都不是尽善尽美的。上述提到的多数场景,在其它数据库中也存在性能问题。了解数据库编译器的特性,才能避规其短处,写出高性能的SQL语句。程序员在设计数据模型以及编写SQL语句时,要把算法的思想或意识带进来。编写复杂SQL语句要养成使用 WITH 语句的习惯。简洁且思路清晰的SQL语句也能减小数据库的负担。最后给大家分享一个Github仓库,上面有大彬整理的300多本经典的计算机书籍PDF,包括。原创 2023-03-25 23:29:41 · 6167 阅读 · 5 评论 -
索引下推,原来这么简单!
索引条件下推,也叫索引下推,英文全称,简称ICP。索引下推是MySQL5.6新添加的特性,用于优化数据的查询。在MySQL5.6之前,通过使用非主键索引进行查询的时候,存储引擎通过索引查询数据,然后将结果返回给MySQL server层,在server层判断是否符合条件。在MySQL5.6及以上版本,可以使用索引下推的特性。当存在索引的列做为判断条件时,MySQL server将这一部分判断条件传递给存储引擎,然后存储引擎会筛选出符合MySQL server传递条件的索引项。原创 2023-03-24 22:22:33 · 415 阅读 · 0 评论 -
2万字60道MySQL经典面试题总结(附答案)
MySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。索引是存储引擎用于提高数据库表的访问速度的一种数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。索引一般存储在磁盘的文件中,它是占用物理空间的。如果 SQL 语句中用到了组合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个组合索引去进行匹配。当遇到范围查询(原创 2023-03-24 07:52:15 · 1595 阅读 · 0 评论 -
一天吃透MySQL锁面试八股文
如果有多个并发请求存取数据,在数据就可能会产生多个事务同时操作同一行数据。如果并发操作不加控制,不加锁的话,就可能写入了不正确的数据,或者导致读取了不正确的数据,破坏了数据的一致性。因此需要考虑加锁。原创 2023-03-14 08:59:11 · 580 阅读 · 0 评论 -
三天吃透MySQL面试八股文
**事务特性ACID**:**原子性**(`Atomicity`)、**一致性**(`Consistency`)、**隔离性**(`Isolation`)、**持久性**(`Durability`)。- **原子性**是指事务包含的所有操作要么全部成功,要么全部失败回滚。- **一致性**是指一个事务执行之前和执行之后都必须处于一致性状态。比如a与b账户共有1000块,两人之间转账之后无论成功还是失败,它们的账户总和还是1000。原创 2023-03-11 16:21:43 · 4636 阅读 · 0 评论 -
三天吃透MySQL八股文(2023最新整理)
- **原子性**是指事务包含的所有操作要么全部成功,要么全部失败回滚。- **一致性**是指一个事务执行之前和执行之后都必须处于一致性状态。比如a与b账户共有1000块,两人之间转账之后无论成功还是失败,它们的账户总和还是1000。- **隔离性**。跟隔离级别相关,如`read committed`,一个事务只能读到已经提交的修改。- **持久性**是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。原创 2023-02-25 17:08:13 · 24610 阅读 · 2 评论 -
2022最新MySQL高频面试题汇总
首先要满足第一范式,另外包含两部分内容,一是表必须有一个主键;二是非主键列必须完全依赖于主键,而不能只依赖于主键的一部分。原创 2023-01-20 08:22:12 · 1111 阅读 · 0 评论 -
这几个SQL语法的坑,你踩过吗
今天给大家分享几个SQL常见的“坏毛病”及优化技巧。原创 2023-01-03 08:00:00 · 412 阅读 · 0 评论 -
MySQL灵魂拷问:36题带你面试通关
大家好,我是大彬~今天给大家分享MySQL常考的面试题,看看你们能答对多少。本期MySQL面试题的目录如下:事务的四大特性?事务隔离级别有哪些?索引什么是索引?索引的优缺点?索引的作用?什么情况下需要建索引?什么情况下不建索引?索引的数据结构Hash索引和B+树索引的区别?为什么B+树比B树更适合实现数据库索引?索引有什么分类?什么是最左匹配原则?什么是聚集索引?什么是覆盖索引?索引的设计原则?索引什么时候会失效?什么是前缀索引?常见的存储引擎有哪些?My原创 2021-10-17 20:10:56 · 1011 阅读 · 0 评论 -
MySQL万字总结!超详细!
PS:本文已经收录到github仓库,此仓库用于分享Java核心知识,包括Java基础、MySQL、SpringBoot、Mybatis、Redis、RabbitMQ等等,面试必备。github地址:https://github.com/Tyson0314/Java-learning如果github访问不了,可以访问gitee仓库。gitee地址:https://gitee.com/tysondai/Java-learning事务特性事务特性:原子性(Atomicity)、一致性(Consis.原创 2021-08-22 10:45:31 · 961 阅读 · 0 评论 -
MySQL执行计划【explain】,看这一篇就够啦!
本文已经收录到github仓库,仓库用于分享Java相关知识总结,包括Java基础、MySQL、Springboot、mybatis、Redis、rabbitMQ等等,欢迎大家提pr和star!github地址:https://github.com/Tyson0314/Java-learninggitlab地址:https://gitee.com/tysondai/Java-learning简介本文主要讲述如何通过 explain 命令获取 select 语句的执行计划,通过 explain 可.原创 2021-08-07 22:59:02 · 475 阅读 · 0 评论