mysql
文章平均质量分 61
mysql
飘然渡沧海
这个作者很懒,什么都没留下…
展开
-
Cannot proceed because system tables used by Event Scheduler were found damaged at server start
mysql_upgrade 检查所有数据库中与mysql服务器当前版本不兼容的所有表,mysql_upgrade也会升级系统表,以便你能使用新添加的权限或功能。如果mysql_upgrade发现一张表可能不兼容,将该表进行检查,如果发现问题,则试图对其进行修复。如果不能修复,则需要人工进行表和索引的重建或修复。每次升级mysql,都需要运行mysql_upgrade。今天因测试库出现了一点问题,怀疑某些人误操作对数据库进行了升级。mysqlcheck是用来 检查,分析,优化,修复表的。重启mysql服务。原创 2022-09-06 09:37:50 · 2267 阅读 · 0 评论 -
MySQL加索引语句不加锁:ALGORITHM=INPLACE, LOCK=NONE
线上无锁添加索引:加索引的语句不加锁然后在阿里云的帮助上找到了一个解决方法原创 2022-06-29 14:36:26 · 3819 阅读 · 0 评论 -
关于mysql like 查询用 = 出现的深层次问题
Sharding-Proxy是ShardingSphere的第二个产品。 它定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。 目前先提供MySQL/PostgreSQL版本,它可以使用任何兼容MySQL/PostgreSQL协议的访问客户端(如:MySQL Command Client, MySQL Workbench, Navicat等)操作数据,对DBA更加友好。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kGTmtq原创 2022-06-16 17:35:49 · 256 阅读 · 0 评论 -
MySQL Flashback闪回工具-java工具
之前博主介绍的闪回;发现使用后还是有瑕疵啊,闪回后sql语句没办法正常使用,而且是必须安装python 我也觉得有点麻烦,毕竟我是一个小java开发。之后博主又在网上浏览到另一种方法 sed 去替换文件,但是sed 替换语句复杂起来是真的复杂!小A突然把现网数据定时库不加条件全部update 了一边1. 根据位置查找到修改的内容2. 过滤该txt内容3.替换字段其实对于这种sed 的Linux 命令过于复杂的博主其实看的就有点头疼了,尤其是 2过滤 方法的正则对于这种情况我自己写了个java原创 2022-06-10 12:36:31 · 271 阅读 · 0 评论 -
MySQL高性能优化规范建议
没有特殊要求(即 Innodb 无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用 Innodb 存储引擎(MySQL5.5 之前默认使用 Myisam,5.6 以后默认的为 Innodb)。Innodb 支持事务,支持行级锁,更好的恢复性,高并发下性能更好。兼容性更好,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集进行比较前需要进行转换会造成索引失效,如果数据库中有存储 emoji 表情的需要,字符集需要采用 utf8mb4 字符集。参考文章:MySQL 字符集不一致导致索引失效原创 2022-06-08 15:46:24 · 156 阅读 · 0 评论 -
MySQL 分组后取最新记录-rank() 函数
5.7相关子查询关联查询8.0rank() 函数MySQL RANK() 函数简介RANK()函数为结果集的分区中的每一行分配一个排名。行的等级由一加上前面的等级数指定。以下显示了RANK()函数的语法:在这个语法中:首先,PARTITION BY子句将结果集划分为分区。RANK()功能在分区内执行,并在跨越分区边界时重新初始化。其次,ORDER BY子句按一个或多个列或表达式对分区内的行进行排序。与ROW_NUMBER()函数不同,RANK()函数并不总是返回连续的整数。..原创 2022-06-06 19:08:53 · 418 阅读 · 0 评论 -
mysql中关于--login-path使用
在控制台登陆数据库,快捷登录在控制台连接数据库,需要每次输入账号密码,感觉很麻烦,偶然发现可以通过login-path保存信息,实现快捷登录,这里记录下。保存账号信息点击回车,会要求输入密码,这里的密码会被加密保存。查看配置的数据库快捷登陆账号列表删除配置登陆数据库...原创 2022-06-06 16:50:58 · 3929 阅读 · 0 评论 -
mysql-根据时间日期分组查询每日数量
DATE_FORMAT 函数定义和用法DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。语法date 参数是合法的日期。format 规定日期/时间的输出格式。可以使用的格式有:原创 2022-06-06 16:46:34 · 2424 阅读 · 0 评论 -
关于事务导致MDL锁进而导致事务长时间无法回滚
先看下锁表数量啊select * from performance_schema.data_locks;从show innodb status中看到的LOCK_MODE含义如下:IX - 意向锁排他锁X - Next-Key Lock锁定记录本身和记录之前的间隙(x)S - Next-Key Lock锁定记录本身和记录之前的间隙(S)X,REC_NOT_GAP 代表只锁定记录本身(x)S,REC_NOT_GAP 代表只锁定记录本身(S)X,INSERT_INTENTION原创 2022-05-23 16:08:19 · 121 阅读 · 0 评论 -
Mysql闪回工具(Flashback )-介绍以及使用
mysql背景:今天在操作数据库的时候直接修改了数据库字段,由于本人比较菜没有写where 语句,导致现网全部数据都被更新覆盖这个时候当然是不能跑路的啊, 毕竟我是一个富有责任心的人 毕竟我是一个富有责任心的人 毕竟我是一个富有责任心的人.主要还是我会之前我在看mysql45讲时候,作者已经说过通过使用binlog+row+Flashback 方式去恢复数据这里一定要开启binlog和row模式,关于这个模式可以看下45讲内容mysql 闪回工具具体可以分为 3类patch第一类是以pa原创 2022-05-07 17:13:34 · 3000 阅读 · 0 评论 -
canal 安装使用与spring boot使用canal
cnanalClientAdapter – canal 1.1.1版本之后, 增加客户端数据落地的适配及启动功能, 目前支持功能:客户端启动器同步管理REST接口日志适配器, 作为DEMO关系型数据库的数据同步(表对表同步), ETL功能HBase的数据同步(表对表同步), ETL功能(后续支持) ElasticSearch多表数据同步,ETL功能Canal Admin – canal-admin设计上是为canal提供整体配置管理、节点运维等面向运维的功能,提供相对友好的Web原创 2022-03-02 17:31:09 · 1851 阅读 · 1 评论 -
mysql查询死锁表 Unknown table ‘INNODB_LOCKS‘ in information_schema
mysql查询死锁表mysql 8.0 版本跟之前是不一样的,网上到处都是 # 查询死锁表 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;# 查询死锁等待时间 SELECT * FROM information_schema.INNODB_LOCK_waits;在8.0版本之前会报Unknown table 'INNODB_LOCKS' in information_schemaUnknown table 'INNODB_LOCK_WA原创 2021-11-15 10:25:17 · 9148 阅读 · 1 评论 -
mysql数据库大批事务不释放 The table ‘XXX‘ is full
mysql数据库事务不释放 今天又尼玛出现mysql锁库,看了下上边得文章数据库状态查询数据库用户得链接状态select User,Command,State,count(1) from information_schema.processlist group by User,Command,State;这个时候给我报了个 ERROR 1114 (HY000): The table ‘/tmp/#sql4c6c_2f4_0’ is full 这个时候我立马退出在linux 上查看mys原创 2021-11-13 21:56:22 · 1294 阅读 · 0 评论 -
mysql数据库死锁问题解决以及kill 杀不掉问题
mysql数据库死锁问题解决今天在做项目的时候,有人告诉我维护的一个老项目老是超时,我去看了下我的服务发现并没有问题。发现是调用数据库的时候超时。重点下面博主会介绍如何去kill掉该进程死锁,但是有个问题就是,如果kill掉的数据是用户已经操作过的,这个时候应该怎么办,如果在kill 进行时要做好 语句保留操作,将kill 掉之后需要恢复的sql 重新执行一次show OPEN TABLES where in_use>0;查询正在使用的库是啥show processlist;首先原创 2021-11-10 14:30:52 · 7806 阅读 · 0 评论 -
Mysql InnoDB存储引擎的数据存储模型(3)
Mysql InnoDB存储引擎的数据存储模型上一篇256个数据区可以被划分为一个数据区组,多个数据区组形成了表空间的整体数据结构;这里需要简单了解一下的就是,一个表空间中、第一个数据区组中的第一个数据区、它的前三个数据页一般会存放一些特殊信息,其他数据区组中的第一个数据区的前两个数据页会放一些特殊的信息;当然这些特殊信息主要的作用还是为mysql的那些复杂机制的实现做铺垫而已,我们简单知道一下就行,表空间最终的结构大概如下图所示:经过以上对一行数据、一个数据页、表空间的分析,我们通过一张流程原创 2021-11-01 16:18:56 · 186 阅读 · 0 评论 -
Mysql InnoDB存储引擎的数据存储模型(2)
Mysql InnoDB存储引擎的数据存储模型数据头接下来我们再简单了解下一行数据中数据头是什么,简单来说一行数据的数据头就是用来描述该行数据的,数据头由40个bit位组成。在这40个bit位组成的数据头中,前2位是预留位,暂时没什么含义;第3位为delete_mask表示如果一行数据被删除了,该位就被标记为1,从这里我们知道了一行数据被删除肯定就不是简单从mysql中彻底消失了;min_rec_mask 是在B+树中、每层非叶子节点的最小记录会有该标记(这里牵扯到到索引了,大家先有个印象就行)原创 2021-11-01 16:12:03 · 211 阅读 · 0 评论 -
Mysql InnoDB存储引擎的数据存储模型(1)
Mysql InnoDB存储引擎的数据存储模型本次会先从mysql表中的一行数据开始入手分析它的数据结构设计,包括一行如何存储在磁盘中、如何从磁盘中读取、存储的结构的是如何一步步演变设计的,在了解完一行数据的设计之后,再从一行数据的设计层面拔高到一个数据页、一个数据区、一个数据区组以及一个表空间的设计层面,最后拓展下redo log和undo log的数据结构并结合Buffer Pool缓存机制,回放下更新一条数据的整体流程在磁盘中如何存放一行数据往mysql中的表插入一行数据我们是再熟悉不过原创 2021-11-01 16:05:29 · 236 阅读 · 0 评论 -
InnoDB存储引擎执行原理深度剖析(3)
InnoDB存储引擎执行原理深度剖析(3)在InnoDB中执行更新操作此时我们需要的数据已经从磁盘中加载到缓冲池中了,下一步当然就是执行更新操作了:先对需要更新的那行数据加锁、原始数据写一份到redo log中便于可能的回滚操作、执行update操作,此时缓存页的数据就被更新了,当然就和磁盘中的数据页的数据就不一致了,这样的缓存页我们称之为脏页,如下图所示那么,如何才能知道缓冲池中,那些缓存页是脏页呢?如果能把脏页和空闲缓存页分离出来,我们就可以把那些脏页的数据及时给刷到磁盘中、再释放掉脏页内存,原创 2021-11-01 15:59:00 · 151 阅读 · 0 评论 -
InnoDB存储引擎执行原理深度剖析(2)
InnoDB存储引擎执行原理深度剖析 先从一个简单的update语句入手,分析它在被执行时是如何与InnoDB存储引擎的各种机制结合起来的,并依次完成整个update语句的执行 1.数据页和缓存页是什么?如何知道哪些缓存页是空闲的,哪些缓存页是可被清除的? 2.mysql预读机制了解过吗,什么情况下会触发它?mysql是为了应对什么样的场景才设计预读机制? 3.类比redis在内存中也存在冷热数据共存的场景,如何考虑利用lru链表解决预读机制的思想、来对redis缓存的设计进行优化? 4.内存极度原创 2021-11-01 15:04:04 · 142 阅读 · 0 评论 -
InnoDB存储引擎执行原理深度剖析(1)
InnoDB存储引擎执行原理深度剖析Mysql架构和InnoDB存储引擎-流程图解析前台操作触发Mysql服务器执行请求前台用户各种操作触发后台sql执行,通过web项目中自带的数据库连接池:如dbcp、c3p0、druid等,与数据库服务器的数据库连接池建立网络连接;数据库连接池中的线程监听到请求后,将接收到的sql语句通过SQL接口响应给查询解析器,查询解析器将sql按照sql的语法解析出查询哪个表的哪些字段,查询条件是啥;再通过查询优化器处理,选择该sq最优的一套执行计划,然后执行器负原创 2021-11-01 14:56:29 · 253 阅读 · 0 评论 -
关于mysql-show status like ‘Threads%‘;查看数据库连接情况
show status like ‘Threads%’;发现我们屁大的服务器也能用2w多create?show variables like ‘thread_cache_size’;临时修改缓存连接数,重启后失效set global thread_cache_size=30;my.cnf 配置文件,[mysqld] 下 增加thread_cache_size = 64...原创 2021-10-14 14:17:02 · 4776 阅读 · 0 评论 -
关于mysql锁表问题
关于mysql锁表问题 今天发现线上sql 查询有问题,进不去个别表。数据库sql可以正常查询,但是走项目查询发现查询失败,超时。觉得有可能是死锁解决方案进入 use information_schema; 查询 select id,user,host,db,command,time,state from processlist a;发现上面等待的进程数他妈有几百条。解决操作 批量解锁:select concat('kill',id,';') kill_process from `PROCE原创 2021-09-17 15:10:41 · 79 阅读 · 0 评论 -
MySql- 一张表内相同用户不同数据拼接
MySql- 一张表内相同用户不同数据拼接一张表内相同用户不同数据拼接思路1思路2一张表内相同用户不同数据拼接同事需求是讲 一张表内 同一个用户 12个月份 的金额在一排内展示例如:思路1select GROUP_CONCAT(t.num SEPARATOR ',') as citys from test t where name='z' 处理结果思路2select name ,sum(CASE WHEN t.date='2021-02-18' THEN numEL原创 2021-03-18 10:40:36 · 388 阅读 · 0 评论