mysql
文章平均质量分 71
DDL_will
南方岛城DBA,每天收获一点点,持续精进
展开
-
drop table大表 一直卡在checking permissions
drop table大表 一直卡在checking permissions原创 2022-12-15 17:39:57 · 543 阅读 · 0 评论 -
mysql8.0 5.7 密码复杂度
1.密码复杂度策略设置MySQL 系统自带有 validate_password 插件,此插件可以验证密码强度,未达到规定强度的密码则不允许被设置。MySQL 5.7 及 8.0 版本默认情况下貌似都不启用该插件,这也使得我们可以随意设置密码,比如设置为 123、123456等。如果我们想从根源上规范密码强度,可以启用该插件,下面一起来看下如何通过此插件来设置密码复杂度策略。1)查看是否已安装此插件进入 MySQL 命令行,通过 show plugins 或者查看 validate_passwo原创 2022-05-24 20:29:07 · 3523 阅读 · 0 评论 -
mysql各版本online ddl
发展历程MySQL Online DDL 功能从 5.6 版本开始正式引入,发展到现在的 8.0 版本,经历了多次的调整和完善。本文主要就 Online DDL 的发展过程,以及各版本的区别进行总结。其实早在 MySQL 5.5 版本中就加入了 INPLACE DDL 方式,但是因为实现的问题,依然会阻塞 INSERT、UPDATE、DELETE 操作,这也是 MySQL 早期版本长期被吐槽的原因之一。在 MySQL 5.6 中,官方开始支持更多的 ALTER TABLE 类型操作来避免数据拷贝,同转载 2022-04-18 14:03:21 · 622 阅读 · 0 评论 -
mysql 查询优化 ~explain解读之select_type的解读
一 简介:今天咱们来聊聊explain的select_type二 类型(1)SIMPLE 简单的SELECT语句(不包括UNION操作或子查询操作)(2)PRIMARY/UNION PRIMARY:查询中最外层的SELECT(如两表做UNION或者存在子查询的外层的表操作为PRIMARY,内层的操作为UNION) UNION:UNION操作中,查询中处于内层的SELECT(内层的SELECT语句与外层的SELECT语句没有依赖关系)(3)DEPENDENT ...转载 2022-01-02 11:08:58 · 801 阅读 · 0 评论 -
接口的幂等性怎么设计?
自己最近负责的几个接口,都涉及到了幂等性的操作,抽空总结了一下,这也是面试官比较爱问的问题。一、什么是幂等?看一下维基百科怎么说的:幂等性:多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。二、使用幂等的场景1、前端重复提交用户注册,用户创建商品等操作,前端都会提交一些数据给后台服务,后台需要根据用户提交的数据在数据库中创建记录。如果用户不小心多点了几次,后端收到了好几次提交,这时就会在数据库中重复创建了多条记录。这就是接口没有幂等性带来的 bug原创 2021-12-14 11:25:03 · 2705 阅读 · 0 评论 -
分页查询优化
出现问题原因: ①系统早期建设时数据量不大, 性能问题没有暴露出来;②很多开发商把这种写法固化到了产品框架中, 导致后期开发人员根本不关心这类问题一、优化方案1.普通方案(主键子查询法)优化后的分页查询写法, 会先查询翻页中需要的N条数据的主键值(emp_no) , 然后根据主键值回表查询所需要的N条数据, 在此过程中查询N条数据的主键id在索引中完成, 所以效率会高一些。弊端:偏移1000以上使用效果好 数据必须是连续的 性能不是最优2.业务优化写法...原创 2021-11-17 20:47:52 · 410 阅读 · 0 评论 -
MySQL基于GTID主从同步异常-跳过-恢复
1、从库(slave节点)获取正在读取的binlog文件和pos位置mysql>show slave status\Gbinlog和pos2、主库(master节点)确认备库事务相对与主库的位置show binlog events in 'mysql-bin.000022' from 1814 limit 2\G定位备库事务相对于主库的位置3、停止从库mysql>stop slave;4、在session里设置gtid_next,即跳过这个GTID转载 2021-10-12 14:08:54 · 1402 阅读 · 0 评论 -
mysql5.7CHAR和VARCHAR类型区别
CHAR和VARCHAR类型该CHAR和VARCHAR类型相似,但它们被存储和检索的方式不同。它们的最大长度以及是否保留尾随空格也不同。该CHAR和VARCHAR类型的声明,其长度指示要存储的最大字符数。例如,CHAR(30)最多可容纳30个字符。一个长度CHAR列被固定在创建表声明的长度。长度可以是0到255之间的任何值。CHAR存储值时,将在它们的右边填充空格以达到指定的长度。当CHAR被检索到的值,拖尾的空格被删除,除非PAD_CHAR_TO_FULL_LENGTH启...翻译 2021-01-07 17:15:16 · 291 阅读 · 0 评论 -
MySQL是如何解决幻读的
一、什么是幻读在一次事务里面,多次查询之后,结果集的个数不一致的情况叫做幻读。而多出来或者少的哪一行被叫做 幻行二、为什么要解决幻读在高并发数据库系统中,需要保证事务与事务之间的隔离性,还有事务本身的一致性。三、MySQL 是如何解决幻读的1. 多版本并发控制(MVCC)(快照读)多数数据库都实现了多版本并发控制,并且都是靠保存数据快照来实现的。以 InnoDB 为例,每一行中都冗余了两个字断。一个是行的创建版本,一个是行的删除(过期)版本。版本号随着每次事务的开启自增。事务原创 2021-01-07 11:14:18 · 186 阅读 · 0 评论 -
MySQL insert死锁套路:三个事务插入有一个回滚
这个是非常经典的一个场景,在网上搜索插入意向锁造成的死锁,绝大部分都会指向这个例子(暂时没想到解决方案求大神指点)表结构CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `a` varchar(5), `b` varchar(5), PRIMARY KEY (`id`), UNIQUE KEY `uk_name` (`a`,`b`));三个事务的 insert 语句都是insert ignore into转载 2020-12-30 17:27:37 · 1076 阅读 · 2 评论 -
解决mysql二进制日志恢复数据报错:@@GLOBAL.GTID_MODE = ON.
解决mysql利用二进制日志恢复数据报错:ERROR 1781 (HY000) at line 16: @@SESSION.GTID_NEXT cannot be set to UUID:NUMBER when @@GLOBAL.GTID_MODE = OFF.工作中,运用二进制日志,帮开发的同事恢复数据时,出现了报错告警:[root@localhost tmp]# mysqlbinlog --no-defaults mysql-bin.000614|mysql -uroot -pEnter p转载 2020-07-03 13:47:27 · 2978 阅读 · 0 评论 -
pt(Percona Toolkit)工具详解:(一)安装
pt(Percona Toolkit)工具是由Percona公司开发的一个用perl语言编写的工具集,包含很多功能,例如在线更改数据表结构,校验主从数据,检查数据库状态,分析慢查询等这些靠人手做起来比较麻烦的事情,功能强大,操作简单.安装既然是perl语言开发的工具集,那当然是先安装perl相关依赖包了yum install -y perl perl-IO-Socket-SSL...转载 2019-10-28 14:56:50 · 1925 阅读 · 0 评论 -
mysql 表设计、索引优化、sql优化简答
如何去写一手好SQL?编码砖家数据库开发2 days ago作者:编码砖家链接:https://www.cnblogs.com/xiaoyangjia/p/11267191.html MySQL性能 数据表设计 索引优化 SQL优化 其他数据库 博主负责的项目主要采用阿里云数据库MySQL,最近频繁出现慢SQL告警,执行时间最长...转载 2019-10-17 16:49:35 · 233 阅读 · 0 评论 -
细说show slave status参数详解(最全)
在搭建好mysql主从之后,我们一般在从库上通过命令show slave status\G来查看主从的状态,会有很多的参数,接下来笔者就带大家好好的了解这些参数root@localhost (none)>show slave status\G*************************** 1. row ***************************...转载 2019-10-17 13:37:26 · 1797 阅读 · 0 评论 -
MySQL中删除重复数据只保留一条
用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断SELECT *FROM peopleWHERE peopleId IN ( SELECT peopleId ...原创 2019-10-16 11:34:06 · 263 阅读 · 0 评论 -
MySQL 之 LEFT JOIN 何时用on 与where 闭坑
现象left join在我们使用mysql查询的过程中可谓非常常见,比如博客里一篇文章有多少条评论、商城里一个货物有多少评论、一条评论有多少个赞等等。但是由于对join、on、where等关键字的不熟悉,有时候会导致查询结果与预期不符,所以今天我就来总结一下,一起避坑。这里我先给出一个场景,并抛出两个问题,如果你都能答对那这篇文章就不用看了。假设有一个班级管理应用,有一个表classe...原创 2019-09-24 14:06:27 · 490 阅读 · 1 评论 -
如何在navicat创建视图
点击创建视图的sql浏览会发现已经有创建视图语句,所以你只要写入我们的查询语句;如果是想导入备份脚本,或者show create view xxx 导出的语句,需要把sql头部的create...去掉 直流select...部分。如图红色部分可以去掉...原创 2018-03-20 17:03:51 · 10505 阅读 · 0 评论 -
mysql 分组查询取各分组的前两名及子查询性能优化
背景:由于项目运营需要提供各个球员(playerId)跑动距离(distance)最长的前两场比赛数据记录:数据存在mongojg表中下面看第一版sql:1.一开始不知道怎么取跑动最好的前两场数据所以通过取表现最好的比赛然后通过id从结果集排除再对剩下的比赛取最好表现,最后将两次结果合并的到球员表现最好的两场比赛(不多说都是泪)...SELECT e.ids, e.matchId, e.pla...原创 2018-04-16 11:47:35 · 2047 阅读 · 0 评论 -
mysql触发器对性能影响
大佬们一直说不要用触发器,触发器对性能影响很多,但是一直似懂非懂,借着最近有时间准备清理下公司库里的触发器,研究下触发器的机制跟对性能影响。想来定义:在MySQL中,触发器可以在你执行INSERT、UPDATE或DELETE的时候,执行一些特定的操作。在创建触发器时,可以指定是在执行SQL语句之前或是之后执行这些操作。通过触发器,你可以实现一些业务逻辑或一些数据限制,在简化应用程序逻辑,优化系统性...转载 2018-06-11 14:37:30 · 17772 阅读 · 0 评论 -
mysql函数FIND_IN_SET(),IN,like 区别
模拟表情况1.先说说FIND_IN_SET的用法SELECT * from cufa12 WHERE FIND_IN_SET('刘昭其',球员);会把column中包含的列都select出来2.In原创 2018-05-31 10:16:55 · 332 阅读 · 0 评论 -
mysql like为什么不走索引,如何改写
本文旨在用最通俗的语言讲述最枯燥的基本知识:这个话题比较有意思。昨天中午吃完饭间突然有个同事蹦出了一句:“like有索引吗?”,我顺口就说没有,另一个同事反驳说有啊,还有些同事说看情况的有,这下有点懵逼了,都不知道那种说法是正确的,于是决定花了个半小时来研究验证这个问题,终于得到答案。怎么验证的呢?坊间有传言:MySQL性能优化有个神器,叫做explain,它可以对select语句...原创 2018-10-12 11:53:04 · 13964 阅读 · 8 评论 -
mysql 5.6 5.7 8.0新特性
来,看看MySQL 5.6, 5.7, 8.0的新特性对于MySQL的历史,相信很多人早已耳熟能详,这里就不要赘述。下面仅从产品特性的角度梳理其发展过程中的里程碑事件。1995年,MySQL 1.0发布,仅供内部使用。1996年,MySQL 3.11.1发布,直接跳过了MySQL 2.x版本。1999年,MySQL AB公司成立。同年,发布MySQL 3.23,该版本集成了Berk...转载 2018-10-18 10:41:57 · 1767 阅读 · 0 评论 -
pt-osc原理、限制、及与原生online-ddl比较
1. pt-osc工作过程创建一个和要执行 alter 操作的表一样的新的空表结构(是alter之前的结构) 在新表执行alter table 语句(速度应该很快) 在原表中创建触发器3个触发器分别对应insert,update,delete操作 以一定块大小从原表拷贝数据到临时表,拷贝过程中通过原表上的触发器在原表进行的写操作都会更新到新建的临时表 Rename 原表到old表中,在...转载 2018-10-15 17:02:57 · 1201 阅读 · 0 评论 -
centos7 yum源安装mysql5.7
1.查看系统中是否已安装 MySQL 服务,以下提供两种方式:rpm -qa | grep mysqlyum list installed | grep mysql2.如果已安装则删除 MySQL 及其依赖的包(卸载):yum -y remove (第一步检索到的mysql软件名)3.进入到要存放安装包的位置/usr/local/mysql5.74.下载官方的 YU...原创 2018-10-09 15:49:44 · 244 阅读 · 0 评论 -
UPDATE能走索引还会锁全表吗
问题描述叶师傅有次上课过程中执行UPDATE测试案例时,发现虽然WHERE条件列已有索引,有时候能利用二级索引进行更新(且只锁定相应必要的几行记录),但有时候却变成了根据主键进行更新,且会锁全表。我们先来看看下面的例子。测试表 t1CREATE TABLE `t1` ( `c1` int(10) unsigned NOT NULL DEFAULT '0', `c2` int(10) u...转载 2018-10-17 10:22:22 · 1312 阅读 · 0 评论 -
centos7 mysql5.7源码安装
mysql5.7安装注意事项:1.mysql5.7中mysql_install_db已经不再推荐使用了,建议改成mysql-initialize完成实例初始化。(mysql_install_db在mysq/bin下,同时取消了mysql/scripts目录)2.在初始化时如果加上--initialize-insecure,则会创建空密码root@localhost账号,否则会创建带密码...原创 2018-10-25 18:34:50 · 1511 阅读 · 0 评论 -
MySQL MHA 管理维护总结
第一部分:mha日常管理1.查看ssh登陆是否成功masterha_check_ssh --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf2.查看复制是否建立好masterha_check_repl --global_conf=/etc/masterha/master...转载 2018-12-16 16:45:49 · 893 阅读 · 0 评论 -
mysql使用limit分页,随着页码的增大,查询效率越低下;数据不一致问题
测试实验1. 直接用limit start, count分页语句, 也是我程序中用的方法:select * from product limit start, count当起始页较小时,查询没有性能问题,我们分别看下从10, 100, 1000, 10000开始分页的执行时间(每页取20条), 如下:select * from product limit 10, 20 0.0...原创 2019-01-11 09:41:59 · 1490 阅读 · 1 评论 -
mysql JOIN优化 清除filesort
性能优化(1)显示inner join 和 隐式inner join显示 --> select * from A inner join B on A.mobile = B.mobile;隐式 --> select * from A inner join B where A.mobile = B.mobile;10万数据的查询用时几乎相等。(2)left join /...原创 2019-01-11 13:36:42 · 899 阅读 · 0 评论 -
华为云rds,安全、便捷、支持binlog恢复,这可能是最懂你的一款云数据库!
1.为什么会进行这次评测当下许多公司的数据和服务器都云服务话,而作为dba日常工作中也越来越多的接触到不同云厂家的云数据库,各个厂商的rds虽然都是基于mysql开发,但不同平台的rds产品的优势还是有所不同。我逐渐萌生了对几个主流云数据库产品的调研想法,而调研评测期间华为与csdn联合开展了华为云数据库评测的活动。所以对华为云进行了性能评测,评测的内容主要是日常工作中会涉及的一些项目。2...原创 2019-01-02 10:29:29 · 4558 阅读 · 0 评论 -
记一次子查询优化,where与having优先级问题
原始sqlSELECT b.school_id , COUNT(school_id) shuliang FROM Sheet1 a join tag b ON a.学校编号=b.school_id GROUP BY school_id where COUNT(school_id)<90;报错 !原因:大致解释如下,sql语句的执行过程是:from-->where-->group...原创 2018-03-06 11:52:45 · 2901 阅读 · 0 评论