MySQL 核心技术
文章平均质量分 92
MySQL 核心技术
haxianhe
个人网站:https://haxianhe.github.io/
展开
-
《破壁MySQL》 - MySQL概述
在正式开始总结MySQL之前,先给大家介绍一下“破壁”是什么意思,很久之前我老大曾说过一句 “互联网本来没有什么行业壁垒,但是通过制造一些专业名词,人为的制造了很多行业壁垒出来”,我深以为然。计算机的本质是0和1,之后通过层层封装、抽象构建出了我们今天看到的互联网世界。我不否认计算机中难度很高的知识,但是就我目前接触到的知识来说还没有到那种程度,我想这种可以称之为行业壁垒的核心知识占总知识量的0.01%都不到,绝大多数人一生都不会遇到这些问题。那么剩下的就是这一个一个人为制造的、可以通过花时间掌握的“原创 2021-01-09 23:21:37 · 194 阅读 · 0 评论 -
一个死锁的case
问题描述今天线上流水的consumer出现了一个insert导致的死锁问题,这里通过一个DEMO复现一下case的整个过程,并进行详细的分析。表结构如下:mysql> show create table test_table;| Table | Create Table | test_table | CREATE TABLE原创 2021-09-17 01:04:53 · 238 阅读 · 0 评论 -
《破壁MySQL》 - MySQL索引
文章每周六持续更新,可以微信搜一搜「 荒古传说 」抢先阅读。在上一篇文章 「《破壁MySQL》 - MySQL概述」 中我们简单介绍了MySQL 架构和 MySQL 存储引擎的相关知识,那么在这一篇文章中我们主要介绍的是 InnoDB存储引擎的索引实现原理,文章中在每介绍一部分知识点后都会给出知识点相对应的常见面试题以及答案,达到理论和实践相结合的效果。面试题1:说说你对 MySQL 索引的理解?/InnoDB引擎中的索引策略,了解过吗?索引是什么索引(Index)是帮助MySQL高效获取数.原创 2021-01-30 21:15:31 · 176 阅读 · 0 评论 -
MySQL面试,看完这篇文章就够了
存储引擎InnoDBInnoDB 是 MySQL 默认的事务型存储引擎,只要在需要它不支持的特性时,才考虑使用其他存储引擎。InnoDB 采用 MVCC 来支持高并发,并且实现了四个标准隔离级别(未提交读、提交读、可重复读、可串行化)。其默认级别时可重复读(REPEATABLE READ),在可重复读级别下,通过 MVCC + Next-Key Locking 防止幻读。主索引时聚簇索引,在索引中保存了数据,从而避免直接读取磁盘,因此对主键查询有很高的性能。InnoDB 内部做了很多优化,包括从.原创 2020-05-29 07:33:06 · 556 阅读 · 0 评论 -
MySQL中,为什么要设置NOT NULL?
平时开发过程中,MySQL 字段的一般都会设置为NOT NULL,原因如下:1、空值("") 和 “NULL” 的区别:空值是不占用空间的MySQL中的NULL其实是占用空间的NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to原创 2020-05-17 17:49:58 · 1068 阅读 · 0 评论 -
MySQL中,小表该不该建索引?
最近刚刚和泽康和素鑫聊过这个问题,这里简单整理一下。标题中的 ‘对于非常小的表,大部分情况下简单的全表扫描比建立索引更高效’ ,其实是问题 ‘索引的使用条件’ 的答案的一部分。完整答案是:对于非常小的表、大部分情况下简单的全表扫描比建立索引更高效对于中到大型的表,索引就非常有效;那么为什么对于非常小的表,大部分情况下简单的全表扫描比建立索引更高效呢?理由如下:MySQL的默认存储引擎是InnoDB,在InnoDB中索引是通过 B+ 树实现的,MySQL的数据是存储在聚簇索引(聚簇索引也叫主.原创 2020-05-10 14:54:48 · 817 阅读 · 0 评论