![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
文章平均质量分 89
程序员阿轩
Java领域:架构干货分享:互联网分析
展开
-
采访了900个大厂员工,终于总结出10大MySQL性能调优方法
MYSQL是什么就不需要我一一解释了,一般都是工作2年的架构师所掌握的必备技能之一一定看到最后哦!!!所有方法都是整理实践亲测有效才会分享给大家!!1.选择合适的存储引擎: InnoDB现在基本都是默认选择InnoDB,不知道你们的习惯是什么,我自己测试的时候我觉得MyISAM 比 InnoDB 速度快,为什么?很简单 MyISAM 只缓存索引,而 InnoDB 缓存数据和索引,MyISAM 不支持事务。但是 如果你使用 innodb_flush_log_at_trx_commit = 2 你.原创 2021-05-17 17:26:03 · 121 阅读 · 0 评论 -
超硬核!MySQL优化从执行计划开始(explain超详细)
前言小伙伴一定遇到过这样反馈:这页面加载数据太慢啦,甚至有的超时了,用户体验极差,需要赶紧优化;反馈等同于投诉啊,多有几次,估计领导要找你谈话啦。于是不得不停下手里头的活,赶紧进行排查,最终可能是程序处理的问题、也可能是并发量大导致排队问题、也可能是SQL查询性能导致等;而在很多时候,SQL查询缓慢是最直接拖慢系统的罪魁祸首,同样是实现一个功能,有的小伙伴毫秒级呈现效果,有的却要好几秒,而调优需要的花费时间不容小觑,最终可能就体现到个人业务能力上和形象上:哇,真牛逼,分分钟搞定; 菜鸟,居然写出原创 2021-03-22 20:13:57 · 194 阅读 · 0 评论 -
mysql系列:innodb日志管理,带你高效快速理解
本文从两个方面进行阐述,常规的日志文件(不区分存储引擎),第二就是讲innodb存储引擎的事务日志。第三就是看下binlog日志和事务日志的对比。一、基本日志文件1.1、基本日志文件分类:错误日志(error log)慢查询日志日志(slow query log)二进制日志(binlog)查询日志(general log)1.2、错误日志主要包括mysql的启动,运行,关闭过程进行记录。默认情况下以服务器的主机名命名`hostname`.err,可以通过参数--log-...原创 2021-02-28 20:54:00 · 261 阅读 · 0 评论 -
MySQL全面剖析:MySQL索引实现和使用
MySQL索引实现上一篇我们详细了解了B+树的实现原理(传送门)。我们知道,MySQL内部索引是由不同的引擎实现的,主要包含InnoDB和MyISAM这两种,并且这两种引擎中的索引都是使用b+树的结构来存储的。InnoDB引擎中的索引Innodb中有2种索引:主键索引(也叫聚集索引)、辅助索引(也叫非聚集索引)。主键索引:每个表只有一个主键索引,b+树结构,叶子节点存储主键的值以及对应整条记录的数据,非叶子节点不存储记录的数据,只存储主键的值。当表中未指定主键时,MySQL内部...原创 2021-02-26 17:48:39 · 117 阅读 · 0 评论 -
这样去理解MySQL的存储引擎,面试官都对我拍手叫好了
MySQL关于存储引擎的架构设计,相较于其他关系数据库管理系统,比如Oracle,SQL Server等数据库,这是MySQL最大的特色,也是MySQL最不一样的地方,因此,在这篇文章中我们来简单地了解一下。存储引擎架构MySQL的存储引擎架构被设计为可插拔式架构模式,也就是在不影响任何业务逻辑的情况下,我们可以随时替换当前的存储引擎,以达到以存储和性能方面的需求。其实,我们可以通过下面MySQL服务架构图来了解一下这个过程:从上面的图我们可以看到,MySQL的Server层与存储.原创 2021-02-23 20:44:55 · 119 阅读 · 0 评论 -
层层递进!MySQL性能优化步骤演进,一顿饭的时间我就会了
业界公认MySQL单表容量在1千万以下是最佳状态,因为这时它的BTREE索引树高在3~5之间思考:为什么MySQL单表1千万的索引树高是3~5?建表优化字段设计基本原则:1、满足需求的情况下尽可能选择小的数据类型和指定短的长度2、拆出变长大字段到单独的表中小字段主要有两个影响(InnoDB默认数据页大小16K):1、相同表记录数的情况下,索引KEY越小,索引树高度就越小,可以减少索引查询次数2、数据行存储的数据越少,每张数据页就能存更多的数据行,查询的时候减少跨页查询,也就是减原创 2021-02-19 17:52:55 · 235 阅读 · 0 评论 -
MySQL数据库- 几种数据迁移的方法详解都在这了!看完必懂
数据迁移的几种方式 - MySQL数据库本文关键字:MySQL、数据库、数据迁移、导入、导出文章目录数据迁移的几种方式 - MySQL数据库 一、数据迁移 1. 数据的生命周期 2. 数据迁移的发生 二、数据导出 1. 命令方式 2. 软件方式 三、数据导入 1. 命令方式 2. 软件方式 四、数据传输与数据同步 1. 数据传输 2. 数据同步 开始和数据库玩耍以后,我们将一直与SQL和数据打交道。在日常的操作中,原创 2021-02-10 20:11:20 · 4799 阅读 · 0 评论 -
Mybatis源码解析:sql参数处理,原来可以这么简单
在这个章节中我们讨论当sql带有参数时,Mybatis是如何处理的。使用的还是User类。//省略get set方法public class User { private int id; private String name; private String phone;}例1 带有全局变量的sql//UserMapper中的dao接口List<User> getByglobal(); <select id="getByglo.原创 2021-02-05 17:57:57 · 689 阅读 · 0 评论 -
SQL优化极简法则,还有谁不会?
SQL 本身并不难学,编写查询语句也很容易,但是想要编写出能够高效运行的查询语句却有一定的难度。查询优化是一个复杂的工程,涉及从硬件到参数配置、不同数据库的解析器、优化器实现、SQL 语句的执行顺序、索引以及统计信息的采集等,甚至应用程序和系统的整体架构。本文介绍几个关键法则,可以帮助我们编写高效的 SQL 查询;尤其是对于初学者而言,这些法则至少可以避免我们写出性能很差的查询语句。以下法则适用于各种关系型数据库,包括但不限于:MySQL、Oracle、SQL Server、PostgreSQL原创 2021-01-27 17:48:08 · 67 阅读 · 0 评论 -
想用好MySQL的联合索引?那你必须注意这些手段
前言在之前《带你扒一扒 MySQL 的数据在磁盘上到底长什么样子…》一文中和大家聊了 MySQL 中的数据在磁盘上,存储的形式都是怎样的。感兴趣的可以回顾一下。然而最后还留了个尾巴,今天来补上:工作中用到最多的联合索引和最左前缀原则是怎么一回事。定义多个字段组成的索引。我们之前讲的都是单值索引,就是只用到了一个字段,而现在是多个字段。SQL 语句表创建之前,在建表语句最后加上 INDEX 索引名称(字段名1, 字段名2, ...) USING BTREECREATE TAB原创 2021-01-26 17:01:17 · 149 阅读 · 0 评论 -
好妙!MySQL蜜罐获取攻击者微信ID
前言前些日子有人问到我溯源反制方面的问题,我就想到了MySQL任意文件读取这个洞,假设你在内网发现或扫到了一些MySQL的弱口令,你会去连吗?原理MySQL中 load data local infile '/etc/passwd' into table test fields terminated by '\n'; 语句可以读取客户端本地文件并插进表中,那么我们可以伪造一个恶意的服务器,向连接服务器的客户端发送读取文件的payload。这个技术并不新鲜,但是合理利用就能起到一些不错的成果。原创 2021-01-20 17:15:26 · 875 阅读 · 0 评论 -
这还不会?手把手带你入门MySQL中的索引和锁
索引索引常见的几种类型索引常见的类型有哈希索引,有序数组索引,二叉树索引,跳表等等。本文主要探讨 MySQL 的默认存储引擎InnoDB的索引结构。InnoDB的索引结构在InnoDB中是通过一种多路搜索树——B+树实现索引结构的。在B+树中是只有叶子结点会存储数据,而且所有叶子结点会形成一个链表。而在InnoDB中维护的是一个双向链表。你可能会有一个疑问,为什么使用 B+树 而不使用二叉树或者B树?首先,我们知道访问磁盘需要访问到指定块中,而访问指定块是需要盘片旋转和...原创 2021-01-08 18:19:33 · 94 阅读 · 0 评论 -
大数据量查询容易OOM?试试MySQL流式查询
一、前言程序访问 MySQL 数据库时,当查询出来的数据量特别大时,数据库驱动把加载到的数据全部加载到内存里,就有可能会导致内存溢出(OOM)。其实在 MySQL 数据库中提供了流式查询,允许把符合条件的数据分批一部分一部分地加载到内存中,可以有效避免OOM;本文主要介绍如何使用流式查询并对比普通查询进行性能测试。二、JDBC实现流式查询使用JDBC的 PreparedStatement/Statement 的 setFetchSize 方法设置为 Integer.MIN_VALUE .原创 2021-01-06 22:39:54 · 345 阅读 · 0 评论 -
一文全解!这是我通过数据库迁移方案的思考和总结
雷孝龙去哪儿网DBA2019年8月加入去哪儿网,拥有丰富的数据库运维和优化经验,现负责公司的MySQL/Redis运维工作,及自动化方案的实施和落地。1. 概述数据库迁移拆分是我们日常运维工作中不可避免的一环,本文主要分析数据库常用的迁移方案对应的使用场景以及优劣势,同时分享了 Quanr 数据库使用架构,以及架构演进过程中的实践经验。2. 迁移方案通常,一个数据迁移方案的设计,取决于原本的数据架构和业务场景。最终目标都是尽可能的对业务友好,停服时间越短越好,甚至是不停服,同时还需要原创 2020-12-29 18:04:23 · 1133 阅读 · 0 评论 -
逆袭!花两个月吃透这份“MySQL宝典”拿到字节offer
一、前言众所周知啊,因为今年爆发的特大疫情导致不少人失业,悲惨,我也是其中一个,我是一位18年毕业于普通二本学院计算机专业的毕业生,之后毕业进入了一家普通的中小型电商公司做开发,因为这次疫情原因被辞退,后来面试携程被面试官问到MySQL,把我狂虐了一番,当时恨不得找个地缝钻进去,虽然对我来说这都不是什么好事,但是也是我人生的转折点,后来我花了两个月熬夜通宵吃透这份“MySQL入门到精通”的宝典竟拿到这份心仪的字节office!看我是怎么花两个月吃透这份“MySQL入门到精通”宝典的吧。由于文章原创 2020-11-28 17:53:56 · 2738 阅读 · 9 评论 -
重磅爆料!腾讯最新公开的“MySQL学习笔记”,已评“钻级”,不得不服!
前言大家都知道,MySQL是一个关系型数据管理系统,也是目前最为流行的数据库管理系统之一,你可以想到的互联网企业可以说都是需要用到MySQL数据库的,MySQL有着体积小、速度快、总体的拥有成本低的特点。而且还是开源的,所以不管是大型企业还是中小型企业都是会优先选择它的,腾讯在中国互联网企业中的地位大家都是知道的,它们的数据量不是用“庞大”就可以形容的,近段时间它们最新公开的“MySQL学习笔记”已被评为钻级!为了让大家更好的学习MySQL技术,我也是第一时间展示给大家了,如果你需要完整版点击这原创 2020-11-18 17:55:39 · 586 阅读 · 4 评论