MySQL
文章平均质量分 89
老程不秃
这个作者很懒,什么都没留下…
展开
-
MySQL 进阶之王,MySql 性能实战源码 + 笔记 + 项目实战
随着互联网时代的兴起,MySQL 在数据库领域日益显现出举足轻重的地位,它不断扩大的用户群体就是很好的证明。在这样的背景下,需要越来越多的人在知识资源方面为之付出,将自己对 MySQL 数据库的学习过程、运维经验、个人理解等记录下来,为行业中的后来者燃起一盏明灯, 让他们少走一些弯路。由于互联网产品用户量大、高并发请求场景多,因此对 MySQL 的性能、可用性、扩展性都提出了很高的要求。使用 MySQL 解决大量数据以及高并发请求已经是程序员的必备技能,也是衡量一个程序员能力和薪资的标准之一。原创 2023-07-15 16:43:40 · 472 阅读 · 0 评论 -
MySQL进阶之道,MySql性能实战源码+笔记+项目实战
随着互联网时代的兴起,MySQL在数据库领域日益显现出举足轻重的地位,它不断扩大的用户群体就是很好的证明。在这样的背景下,需要越来越多的人在知识资源方面为之付出,将自己对MySQL数据库的学习过程、运维经验、个人理解等记录下来,为行业中的后来者燃起一盏明灯, 让他们少走一些弯路。由于互联网产品用户量大、高并发请求场景多,因此对MySQL的性能、可用性、扩展性都提出了很高的要求。使用MySQL解决大量数据以及高并发请求已经是程序员的必备技能,也是衡量一个程序员能力和薪资的标准之一。原创 2023-04-20 14:17:44 · 136 阅读 · 0 评论 -
INSERT语句引发的死锁
两条一样的INSERT语句竟然引发了死锁,这究竟是人性的扭曲,还是道德的沦丧,让我们不禁感叹一句:卧槽!这也能死锁,然后眼中含着悲催的泪水无奈的改起了业务代码。好的,在深入分析为啥两条一样的INSERT语句也会产生死锁之前,我们先介绍一些基础知识。准备一下环境为了故事的顺利发展,我们新建一个用了无数次的hero表:CREATE TABLE hero ( number INT AUTO_INCREMENT, name VARCHAR(100), country var原创 2022-01-14 13:26:15 · 4499 阅读 · 0 评论 -
如何创建高性能的索引
如何创建高性能的索引EXPLAIN 类型分析explain 指令可以帮助我们查看查询优化器 处理 执行计划 的一些细节信息语法: explain + 执行计划假如我们有这样的两张表(分类表和商品表),我们将结合explain 字段进行说明:#分类CREATE TABLE category (id int primary key auto_increment,name varchar(50) not null,c_desc varchar(200),create_time原创 2022-01-08 20:43:18 · 2793 阅读 · 3 评论 -
深入浅出Mysql索引优化专题分享|面试怪圈
文章纲要该文章结合18张手绘图例,21个SQL经典案例、近10000字,将Mysql索引优化经验予以总结,你可以根据纲要来决定是否继续阅读,完成这篇文章大概需要25-30分钟,相信你的坚持是不负时光的:前言 开篇小例子 单索引性能最优? 索引越多越好? 常用术语 主键索引(聚簇索引) 辅助索引 覆盖索引 最左匹配 索引下推 再谈优化 覆盖索引,减少回表 遵循最左匹配原则 联合索引,字段顺序 前缀索引 索引失效 大字段影响检索性能 GROUP BY如何优化 OR..原创 2021-12-20 21:48:08 · 338 阅读 · 0 评论 -
她问我:为什么 MySQL 喜欢 B+ 树?我笑着画了 20 张图
「为什么 MySQL 采用 B+ 树作为索引?」这句话,是不是在面试时经常出现。要解释这个问题,其实不单单要从数据结构的角度出发,还要考虑磁盘 I/O 操作次数,因为 MySQL 的数据是存储在磁盘中的嘛。这次,就跟大家一层一层的分析这个问题,图中包含大量的动图来帮助大家理解,相信看完你就拿捏这道题目了!怎样的索引的数据结构是好的?MySQL 的数据是持久化的,意味着数据(索引+记录)是保存到磁盘上的,因为这样即使设备断电了,数据也不会丢失。磁盘是一个慢的离谱的存储设备,有多离谱呢?原创 2021-12-18 13:50:51 · 2545 阅读 · 3 评论 -
MySQL模糊查询再也不用like+%了
前言我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用户数据的关键字进行全文查找,电子商务网站需要根据用户的查询条件,在可能需要在商品的详细介绍中进行查找,这些都不是B+树索引能很好完成的工作。通过数值比较,范围过滤等就可以完成绝大多数我们需要的查询了。但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较,全文索引就是为这种场景设计的。全文索引(Full..原创 2021-12-14 22:40:11 · 299 阅读 · 0 评论 -
MySQL 索引优化实践
案例创建表的 DDL# DDL 语句CREATE TABLE `employees` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `name` VARCHAR(24) NOT NULL DEFAULT '' COMMENT '姓名' COLLATE 'utf8_general_ci', `age` INT(10) NOT NULL DEFAULT '0' COMMENT '年龄', `position` VARCHAR(20) NOT NULL ..原创 2021-12-12 15:42:13 · 176 阅读 · 0 评论 -
选择合适的数据类型以及恰当的范围
MySQL 数据库中一共去定义了四类数据类型,而且它们都有不同的取值范围,也就是合法的取值区域。对于业务开发来说,选择合适的数据类型往往是很简单的。比如你存储姓名,肯定是用字符串,存储年龄你会选择整形数字等等。所以这里的焦点其实是各个数据类型的取值范围对业务发展的影响。字符串字符串类型是MySQL中最常用的数据类型,也是比较灵活的数据类型,学习字符串数据,也会讨论到字符集与转义字符等知识,因为比较复杂。MySQL的字符串类型都可以用于去存储字符串。MySQL的字符串数据类型可以分为 二进制字符串原创 2021-11-28 15:59:21 · 814 阅读 · 0 评论 -
关注MySQL高级应用窗口函数之偏移分析函数
前言本篇将通过示例讲解:偏移分析函数+over()一、偏移分析函数概念 lag(col,n,default):用于统计分组内往上第n行值。 第一个参数为列名 第二个参数为往上第n行(可选,不填默认为1) 第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL) lead(col,n,default):与lag相反,统计分组内往下第n行值。 第一个参数为列名 第二个参数为往下第n行(可选,不填默认为1) 第三个参数为默认值(当往下第n行原创 2021-11-28 15:41:33 · 1740 阅读 · 1 评论 -
EXPLAIN 使用
分析 EXPLAIN 的结果现在我们来分析一下 EXPLAIN 的结果。explain select * from salaries where from_date ='1996-12-02';复制代码select_type 是 simple 表示这是一个简单查询;查询的表是 salaries;type 是 ALL 表示发生了全表扫描,全秒扫描的性能是最差的;possible_keys、key、key_len 都是空,说明没有使用索引;rows 执行这条 SQL 语句需要扫描两百多万行数原创 2021-11-26 20:39:18 · 425 阅读 · 0 评论 -
关注MySQL高级 - 架构组成
高级MySQL介绍什么是DBA?数据库管理员,英文是Database Administrator,简称DBA。 百度百科介绍 数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。 DBA的核心目标是保证数据库管理系统的稳定性、安全性、完整性和高性能。 在国外,也有公司把DBA称作数据库工程师(Database Enginee原创 2021-11-26 20:08:03 · 309 阅读 · 0 评论