mysql
文章平均质量分 90
懵懵懂懂搬运工
这个作者很懒,什么都没留下…
展开
-
Mysql 调优
最近给新人codereview,差点吐血,也有一些调优方面的知识,所以顺便记录了下来分享给大家。这里的主要是分享索引方面的调优,在工作中,很多同学都有建立索引的一些经验,但是是否有自己深入的思考过,怎么样建立索引才最合适。字符串怎么建立索引、怎么优化联合索引、怎么避免回表等一些问题,是否有结合自己的实际项目进行深入的思考呢?这里,我就将自己实际中遇到的一些问题分享给大家,下面开始我们的正题,首先开始之前,先来回顾一些基础的知识。什么是Mysql的索引,联合索引是什么?回表是什么?回表怎么解.转载 2021-12-22 15:35:57 · 123 阅读 · 0 评论 -
慢查询的坑
前言前几天帮公司解决线上慢SQL告警问题,遇到了几个case。下面我会结合case案例分析自己这段时间在工作上遇到的慢查询谈谈数据库如何优化慢查询。一般我们遇到的慢sql都是索引没有正确使用导致的,所以我先介绍下索引相关知识索引介绍索引概念排好序的快速查找的数据结构(我们平时说的索引,如果没有特别指明,都是指B树,其中聚集索引、次要索引、覆盖索引、复合索引、前缀索引、唯一索引默认使用的都是B+树索引,除B+树这种类型的索引外还有哈希索引等)索引优缺点优点: 查找 :提高转载 2021-12-22 15:33:34 · 131 阅读 · 0 评论 -
详解MySQL性能优化
作者:LanceToBigDatacnblogs.com/zhangyinhua/p/7620964.html说起MySQL的查询优化,相信大家积累一堆技巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型….. 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用。MySQL逻辑架构如果能在头脑中构建一幅.转载 2021-12-20 09:31:18 · 377 阅读 · 0 评论 -
mysql磁盘满了,会发生什么?
来自:https://urlify.cn/jemaym使用命令发现磁盘使用率为100%了,还剩几十兆。一系列神操作备份数据库,删除实例、删除数据库表、重启mysql服务,结果磁盘空间均没有释放。怎么办网上查了很多资源,说要进行磁盘碎片化整理。原因是datafree占据的空间太多啦。具体可以通过这个sql查看。SELECTCONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB')ASdata_size,CONCAT(TRU...转载 2021-12-20 09:29:35 · 434 阅读 · 0 评论 -
同事升级了MySQL驱动8.0,导致应用大量超时
blog.csdn.net/qq_40378034推荐:https://www.xttblog.com/?p=5221现象最近同事发现新服务用的驱动都是 MySQL8.0,而一些老系统 MySQL 驱动版本较低,存在一些危险漏洞,于是主动的把一些老应用的 MySQL 驱动程序升级到了 8.0。然而升级后,在并发量较高时,查看监控打点,Druid 连接池拿到连接并执行 SQL 的时间大部分都超过 200ms。本文详细的分析了这次“破案”的全过程。对系统进行压测,发现出现大量线程阻塞的情况,转载 2021-12-20 09:26:53 · 252 阅读 · 0 评论 -
MySQL 的 Binlog 日志处理的4款工具对比
来源:blog.csdn.net/weixin_38071106/article/details/88547660 Canal Maxwell Databus 阿里云的数据传输服务DTS Canal定位:基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql。原理: canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议 mysql master收到转载 2021-12-20 09:18:34 · 458 阅读 · 0 评论 -
linux 安装mysql 8
linux下安装myslq 8一、下载可以自己去官网下载MySQL :: Download MySQL Community Server (Archived Versions)链接:https://pan.baidu.com/s/1QzQTS-gKOYoOdQ14oGFpww提取码:4by6二、安装把下载的安装包上传到Linux系统。解压文件将压缩包解压到/usr/local/目录下,并改名mysqlcd /usr/local/tar -xvf /home/...转载 2021-12-19 12:08:05 · 102 阅读 · 0 评论 -
深入剖析 MySQL 索引和 SQL 调优实战
MySQL索引MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引。MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。MySQL索引原理索引目的索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词转载 2021-12-17 09:32:11 · 148 阅读 · 0 评论 -
分库分表:如何做到永不迁移数据和避免热点?
中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就应该对数据进行拆分了。有垂直和水平两种。垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。如下图,独立的拆分出订单库和用户库。水平拆分的概念,是同一个业务数据量大之后,进行水平拆分。上图中订单数据达到了4000万,我们也知道mysql单表存储量推荐是百万级,如果不进行处理,mysql单表数据太大,会导致性能变慢。使用方案可以参考数据进行水平拆分。把4000万数据拆分4张表或者更多。当然也可以分库,再分表;转载 2021-12-17 09:24:56 · 124 阅读 · 0 评论 -
场景+案例分析,SQL优化
作者:狼爷cnblogs.com/powercto/p/14410128.html目录 前言 SQL优化一般步骤 1、通过慢查日志等定位那些执行效率较低的SQL语句 2、explain 分析SQL的执行计划 3、show profile 分析 4、trace 5、确定问题并采用相应的措施 场景分析 案例1、最左匹配 案例2、隐式转换 案例3、大分页转载 2021-12-17 09:22:31 · 166 阅读 · 0 评论 -
MySQL 唯一索引为什么会导致死锁?
来源:https://www.cnblogs.com/hongdada/p/9970176.html唯一性索引unique影响唯一性索引表创建DROPTABLEIFEXISTS`sc`;CREATETABLE`sc`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(200)CHARACTERSETutf8DEFAULTNULL,`class`...转载 2021-12-17 09:20:58 · 489 阅读 · 0 评论 -
优化MySQL亿级数据分页
背景1月22号晚上10点半,下班后愉快的坐在在回家的地铁上,心里想着周末的生活怎么安排。突然电话响了起来,一看是我们的一个开发同学,顿时紧张了起来,本周的版本已经发布过了,这时候打电话一般来说是线上出问题了。果然,沟通的情况是线上的一个查询数据的接口被疯狂的失去理智般的调用,这个操作直接导致线上的MySql集群被拖慢了。好吧,这问题算是严重了,下了地铁匆匆赶到家,开电脑,跟同事把Pinpoint上的慢查询日志捞出来。看到一个很奇怪的查询,如下POST domain/v1.0/modu.转载 2021-12-17 09:18:35 · 245 阅读 · 0 评论 -
血一般的教训,请慎用insert into select
“血一般的教训,请慎用 insert into select。同事应用之后,导致公司损失了近 10w 元,最终被公司开除。事情的起因公司的交易量比较大,使用的数据库是 MySQL,每天的增量差不多在百万左右,公司并没有分库分表,所以想维持这个表的性能只能考虑做数据迁移。同事李某接到了这个任务,于是他想出了这两个方案: 先通过程序查询出来,然后插入历史表,再删除原表。 使用 insert into select 让数据库 IO 来完成所有操作。 第一个方案使用的时候发现..转载 2021-12-17 09:16:57 · 5074 阅读 · 0 评论 -
delete后加 limit是个好习惯
作者:_陈哈哈来源:blog.csdn.net/qq_39390545/article/details/107519747在业务场景要求高的数据库中,对于单条删除和更新操作,在 delete 和 update 后面加 limit 1 绝对是个好习惯。比如,在删除执行中,第一条就命中了删除行,如果 SQL 中有 limit 1;这时就 return 了,否则还会执行完全表扫描才 return。效率不言而喻。那么,在日常执行 delete 时,我们是否需要养成加 limit 的习惯呢?是不是一个好习转载 2021-12-14 09:19:46 · 201 阅读 · 0 评论 -
一次线上Mysql 索引优化的思考
查看系统性能监控,发现有十多条慢查询,决定将其优化。挑选其中一条典型Sql记录其优化历程。1.概述在下文的查询优化中,主要围绕的问题:Mysql为何会选错索引?2.优化历程2.1,定位问题为了便于描述,贴出建表语句(表中数据约有400万行):MySQL > show create table demo_table\G *************************** 1\. row ***************************转载 2021-12-13 09:28:24 · 123 阅读 · 0 评论 -
MySQL规范
规范在整个后端执行也有大半年的时间,对于整个团队在开发阶段就减少不恰当的建表语句、错误 SQL、错误的索引有积极的意义,故分享出来给大家参考。下边分为建表规约、SQL 规约、索引规约三个部分,每部分的每一条都有强制、建议两个级别,大家在参考时,根据自己公司的情况来权衡。建表规约【强制】:①存储引擎必须使用 InnoDB解读:InnoDB 支持事物、行级锁、并发性能更好,CPU 及内存缓存页优化使得资源利用率更高。【强制】:②每张表必须设置一个主键 ID,且这个主键 ID 使用自增主键(在转载 2021-12-13 09:22:28 · 247 阅读 · 0 评论 -
SQL优化极简法则
SQL 本身并不难学,编写查询语句也很容易,但是想要编写出能够高效运行的查询语句却有一定的难度。查询优化是一个复杂的工程,涉及从硬件到参数配置、不同数据库的解析器、优化器实现、SQL 语句的执行顺序、索引以及统计信息的采集等,甚至应用程序和系统的整体架构。本文介绍几个关键法则,可以帮助我们编写高效的 SQL 查询;尤其是对于初学者而言,这些法则至少可以避免我们写出性能很差的查询语句。以下法则适用于各种关系型数据库,包括但不限于:MySQL、Oracle、SQL Server、PostgreSQL转载 2021-12-13 09:19:55 · 95 阅读 · 0 评论 -
MySQL 官方压测神器
作者:运维小弟www.toutiao.com/i6843323300764975628/一、MySQL自带的压力测试工具 Mysqlslapmysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较。mysqlslap为mysql性能优化前后提供了直观的验证依据,系统运维和DBA人员应该掌握一些常见的压力测试工具,才能准确的掌握线上数据库支撑的用户流量上限及其转载 2021-12-10 09:43:52 · 179 阅读 · 0 评论 -
SQL:事务你都阳性了,赶紧隔离吧~
目录 概念 隔离性与隔离级别 事务隔离的实现 事务启动方式 MVCC工作原理 总结 一、概念事务到底是什么东西呢?想必大家学习的时候也是对事务的概念很模糊的。接下来通过一个经典例子讲解事务。银行在两个账户之间转账,从A账户转入B账户1000元,系统先减少A账户的1000元,然后再为B账号增加1000元。如果全部执行成功,数据库处于一致性;如果仅执行完A账户金额的修改,而没有增加B账户的金额,则数据库就处于不一致状态,这时就需要取消前..转载 2021-12-10 09:43:02 · 111 阅读 · 0 评论 -
SQL优化
作者:陈哈哈chensj.blog.csdn.net/article/details/107020686前言BATJTMD等大厂的面试难度越来越高,但无论从大厂还是到小公司,一直未变的一个重点就是对SQL优化经验的考察。一提到数据库,先“说一说你对SQL优化的见解吧?”。SQL优化已经成为衡量程序猿优秀与否的硬性指标,甚至在各大厂招聘岗位职能上都有明码标注,如果是你,在这个问题上能吊打面试官还是会被吊打呢?注:如果看着模糊,可能是你撸多了目录前言SELECT语句 - .转载 2021-12-10 09:41:35 · 131 阅读 · 0 评论 -
1.3 万亿条数据查询,如何做到毫秒级响应?
知乎,在古典中文中意为“你知道吗?”,它是中国的 Quora,一个问答网站,其中各种问题由用户社区创建,回答,编辑和组织。作为中国最大的知识共享平台,我们目前拥有 2.2 亿注册用户,3000 万个问题,网站答案超过 1.3 亿。随着用户群的增长,我们的应用程序的数据大小无法实现。我们的 Moneta 应用程序中存储了大约 1.3 万亿行数据(存储用户已经阅读过的帖子)。由于每月累计产生大约 1000亿行数据且不断增长,这一数字将在两年内达到 3 万亿。在保持良好用户体验的同时,..转载 2021-12-10 09:38:35 · 153 阅读 · 0 评论 -
你这个数据量多大?分库分表怎么做?用的哪个组件?
1. 概述 1.1. ShardingSphere-JDBC 1.2. ShardingSphere-Proxy 1.3. ShardingSphere-Sidecar 1.4. 混合架构 2. 概念 & 功能 2.1. 数据分片 2.2. 读写分离 3. 示例:水平分库分片 4. 写在最后 1. 概述ShardingSphere是一套开源的分布式数据库中间件...转载 2021-12-10 09:35:06 · 220 阅读 · 0 评论 -
为什么使用了索引,查询还是慢?
经常有朋友问到:我的一个SQL语句使用了索引,为什么还是会进入到慢查询之中呢?今天我们就从这个问题开始来聊一聊索引和慢查询。1案例分析言归正传,为了实验,我创建了如下表:CREATETABLE`T`(`id`int(11)NOTNULL,`a`int(11)DEFAUTNULL,PRIMARYKEY(`id`),KEY`a`(`a`))ENGINE=InnoDB;该表有三个字段,其中用id是主键索引,a是普通索引。首先SQL判断一个语句是不...转载 2021-12-09 09:30:35 · 631 阅读 · 1 评论 -
MySQL性能如何优化?
前言 上篇讲了MySQL的索引优化,此篇文章从大范围讲一下MySQL数据库到底该如何优化?这个问题在面试中时常被问到,今天陈某来总结下。 SQL 优化的几个步骤1. 通过show status命令了解各种 SQL 的执行效率show[session|global]status; 可以根据需要加上参数来显示session级(当前连接,默认)和global级(自数据库上次启动至今)的统计结果。 showstatuslike'Com_%';---显示当前连接所...转载 2021-12-09 09:26:46 · 120 阅读 · 0 评论 -
mysql索引优化
前言 索引的相信大家都听说过,但是真正会用的又有几人?平时工作中写SQL真的会考虑到这条SQL如何能够用上索引,如何能够提升执行效率? 此篇文章详细的讲述了索引优化的几个原则,只要在工作中能够随时应用到,相信你写出的SQL一定是效率最高,最牛逼的。 文章的脑图如下: 索引优化规则1、like语句的前导模糊查询不能使用索引select*fromdocwheretitlelike'%XX';--不能使用索引select*fromdocw...转载 2021-12-09 09:25:50 · 128 阅读 · 0 评论 -
索引是什么,如何实现?
前言 索引是什么?有什么利弊?一旦在面试中被问道,对于新入门的小白可能是个棘手的问题。 本篇文章将会详细讲述什么是索引、索引的优缺点、数据结构等等常见的知识。 什么是索引 索引就是一种的数据结构,存储表中特定列的值并对值进行排序,所以是在表的列上面创建的。索引将通过缩小一张表中需要查询的记录的数目来加快搜索的速度。如果没有索引,数据库不得不进行全表扫描。索引就好比一本书的目录,它会让你更快的找到内容。 索引的优点 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。转载 2021-12-09 09:24:17 · 2555 阅读 · 0 评论 -
最完整的Explain总结
先看看具体有哪些字段:mysql>EXPLAINSELECT1;其实除了以SELECT开头的查询语句,其余的DELETE、INSERT、REPLACE以及UPDATE语句前边都可以加上EXPLAIN这个词儿,用来查看这些语句的执行计划建两张测试表:CREATETABLEt1(idINTNOTNULLAUTO_INCREMENT,key1VARCHAR(100),key2VARCHAR(100),key3VARC...转载 2021-11-05 09:22:27 · 271 阅读 · 0 评论 -
MySQL 开发规范
数据库对象命名规范 数据库对象 数据库对象全局命名规范 数据库命名规范 表命名规范 字段命名规范 索引命名规范 视图命名规范 存储过程命名规范 函数命名规范 触发器命名规范 约束命名规范 用户命名规范 数据库对象设计规范 存储引擎的选择 字符集的选择 表设计规...转载 2021-11-02 14:28:52 · 144 阅读 · 0 评论 -
MySQL大表优化方案
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段 尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED VAR转载 2021-11-02 09:11:45 · 144 阅读 · 0 评论 -
mysql一张表到底能存多少数据?
前言程序员平时和mysql打交道一定不少,可以说每天都有接触到,但是mysql一张表到底能存多少数据呢?计算根据是什么呢?接下来咱们逐一探讨知识准备数据页在操作系统中,我们知道为了跟磁盘交互,内存也是分页的,一页大小4KB。同样的在MySQL中为了提高吞吐率,数据也是分页的,不过MySQL的数据页大小是16KB。(确切的说是InnoDB数据页大小16KB)。详细学习可以参考官网 我们可以用如下命令查询到。mysql>SHOWGLOBALSTATUSLIKE'inno...转载 2021-11-01 09:46:51 · 2691 阅读 · 0 评论 -
MySQL 用 limit 为什么会影响性能?
一,前言首先说明一下MySQL的版本:mysql> select version();+-----------+| version() |+-----------+| 5.7.17 |+-----------+1 row in set (0.00 sec)表结构:mysql> desc test;+--------+---------------------+------+-----+---------+----------------+| Field.转载 2021-11-01 09:37:14 · 145 阅读 · 0 评论 -
8种经常被忽视的SQL错误用法
1、LIMIT 语句分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引。这样条件排序都能有效的利用到索引,性能迅速提升。SELECT * FROM operation WHERE type = 'SQLStats' AND name = 'SlowLog' ORDER BY create_time LIMIT 1000, 10;好吧,可能9转载 2021-11-01 09:21:51 · 124 阅读 · 0 评论 -
52条SQL语句,性能优化
1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。3,应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE。4,应尽量转载 2021-10-29 09:43:35 · 69 阅读 · 0 评论 -
SQL 优化极简法则
大家好!我是只谈技术不剪发的 Tony 老师。SQL 作为关系型数据库的标准语言,是 IT 从业人员必不可少的技能之一。SQL 本身并不难学,编写查询语句也很容易,但是想要编写出能够高效运行的查询语句却有一定的难度。查询优化是一个复杂的工程,涉及从硬件到参数配置、不同数据库的解析器、优化器实现、SQL 语句的执行顺序、索引以及统计信息的采集等,甚至应用程序和系统的整体架构。本文介绍几个关键法则,可以帮助我们编写高效的 SQL 查询;尤其是对于初学者而言,这些法则至少可以避免我们写出性能很差的查询语句。转载 2021-10-28 09:31:54 · 98 阅读 · 0 评论 -
索引的使用规则和设计考虑
当我们建立好一个联合索引之后,我们的SQL语句要怎么写,才能让他的查询使用到我们建立好的索引呢?索引最基本的规则就是等值匹配了,就是where条件里的查询条件字段和联合索引的字段完全一样,都是基于等于来匹配的。最左侧列匹配,假如我们设计的索引是INDEX(class_name, student_name, course_name),查询的SQL语句where里不一定要根据三个字段来查询,只要最左侧的部分字段来查,就可以了比如:select * from student_score w原创 2021-10-27 09:46:29 · 135 阅读 · 0 评论 -
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
最近在阿里云远端服务器上搭建mysql数据库 安装时候提示:FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db: Data::Dumper解决方法是安装autoconf库和libaio库文件执行命令:yum -y install aut...原创 2019-01-07 19:33:33 · 759 阅读 · 1 评论