
--Mysql--
文章平均质量分 92
jiuqijack
不暴不弃,砥砺前行,相信我们终将开启理想的大门
展开
-
mysql死锁系列1---- 再见死锁
月份的时候,线上某个系统遇到了一个死锁问题,当时对这个死锁百思不得其解,慢慢的从困惑到感兴趣,虽然那时花了大概一个礼拜的时间研究后就已经把这个死锁问题解决了,但是对死锁的执念却一直没有放下,开始翻阅大量的文档和资料,看。语句、等待的锁以及持有的锁信息等。...........................转载 2022-08-26 14:53:12 · 638 阅读 · 0 评论 -
mysql死锁系列1---- 常见 SQL 语句的加锁分析
条件,并且都是等值查询。命中二级唯一索引,上一篇博客中我们介绍了索引的结构,我们知道二级索引的叶子节点中保存了主键索引的位置,在给二级索引加锁的时候,主键索引也会一并加锁。下不同的锁模式和锁类型,我们要特别注意它们的兼容矩阵,熟悉哪些锁是不兼容的,这些不兼容的锁往往就是导致死锁的罪魁祸首。锁是一种悲观的顺序化机制,它假设很可能发生冲突,因此在操作数据时,就加锁,如果冲突的可能性很小,多数的锁都是不必要的。的锁各式各样,但是有些基本的加锁原则是保持不变的,譬如:快照读是不加锁的,更新语句肯定是加排它锁的,..转载 2022-08-26 14:50:18 · 576 阅读 · 0 评论 -
mysql死锁系列1---- 了解常见的锁类型
在上一篇博客中,我们学习了事务以及事务并发时可能遇到的问题,并介绍了四种不同的隔离级别来解决这些并发问题,在隔离级别的实现一节中,我们提到了锁的概念,锁是实现事务并发的关键。其实,锁的概念不仅仅出现在数据库中,在大多数的编程语言中也存在,譬如 Java 中的 synchronized,C# 中的 lock 等,所以对于开发同学来说应该是不陌生的。但是数据库中的锁有很多花样,一会是行锁表锁,一会是读锁写锁,又一会是记录锁意向锁,概念真是层出不穷,估计很多同学就晕了。在讨论传统的隔离级别实现的时候,我们就提到:转载 2022-08-26 14:25:34 · 488 阅读 · 0 评论 -
mysql死锁系列1---学习事务与隔离级别
上个月在查看线上错误日志的时候,偶然发现了下面这样的异常,异常发生的次数并不是很多,但是可以看出几乎每天都有那么几次。看异常信息就知道是发生了数据库死锁,由于对这块不是很了解,加上这个异常对系统业务没有啥大的影响,所以就一直拖了一个月的时间。最近实在忍不住,于是花了两周的时间,从网上找到了各种关于数据库死锁相关的文章,将 MySQL 数据库的一些基础知识,包括事务、隔离级别、索引和锁等等知识点仔细复习了一遍,也顺利解决了线上的死锁问题。异常信息如下:12。......转载 2022-08-26 14:21:38 · 246 阅读 · 0 评论 -
幻读和不可重复读的区别
版权声明:本文为博主原创文章,未经博主允许不得转载。微信公众号:JoonWhee,欢迎关注。 https://blog.youkuaiyun.com/v123411739/article/details/39298127目录(?)[-]MySQl 幻读 Oracle 不可重复读 幻读 MySQlMySql默认的隔离级别为Repeatable Read,因此只会出现幻读的情况。...转载 2020-05-08 17:21:30 · 666 阅读 · 0 评论 -
MySQL事务隔离级别
好久没碰数据库了,只是想起自己当时在搞数据库的时候在事务隔离级别这块老是卡,似懂非懂的。现在想把这块整理出来,尽量用最简洁的语言描述出来,供新人参考。首先创建一个表account。创建表的过程略过(由于InnoDB存储引擎支持事务,所以将表的存储引擎设置为InnoDB)。表的结构如下:表结构然后往表中插入两条数据,插入后结果如下:数据为了说明问题,我们打开两个控制台分别...转载 2020-05-08 17:00:56 · 269 阅读 · 0 评论 -
com.mysql.cj.jdbc.exceptions.PacketTooBigException
在做查询数据库操作时,报了以上错误,还有out of memery heap hacp ,原因是mysql的max_allowed_packet设置过小引起的,mysql根据配置文件会限制server接受的数据包大小。有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。1.进入mysql:mysql -uroot -p2.查看当前配置信息:sho...转载 2020-03-18 14:20:01 · 481 阅读 · 0 评论 -
MySQL 如何创建索引?怎么优化?
索引类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本。MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的。MySQL提供了Explain,用于显示SQL执行的详细信息,可以进行索引的优化。一、导致SQL执行慢的原因1.硬件问题。如网络速度慢,内存不足,I/O吞吐量小,磁盘空间满了等。...转载 2019-12-09 20:29:16 · 232 阅读 · 0 评论 -
MYSQL 异常:No operations allowed after statemente closed
关于这个异常,我今天遇到的情况是:小量数据执行时完全没有问题,当执行大批量数据时就会报这个错误,并且回滚操作也报错了。项目原因分析: sql执行效率比较低,大数据量时,导致数据库连接超时,释放了连接,导致该执行无法进行任何数据库交互,包括回滚提交等。解决方案:第一种:找到所使用连接池连接超时时间控制的参数,然后延长 第二种:优化sql执行速度,保证在连...原创 2019-12-03 17:35:36 · 5598 阅读 · 0 评论 -
关于mysql关联查询时不使用索引问题
今天在写一个关联查询时,发现查询速度特别慢,然后解析了一下sql发现没有用已经建好的索引,各种不解,为啥不用呢?最后定位问题:两个表比较的字段类型不一致,一个varchar一个bigint(查询不报错会全表查询所以慢,匹配原则是varchar字段从左到右依次匹配bigint),不知道为啥bigint类型要存为varchar,然后直接将该字段改为bigint类型(因为该字段存的就是id不可能出现...原创 2019-11-14 11:51:55 · 756 阅读 · 0 评论 -
sql查询本天,本周,本季度,本年,前一天,后一天,最后一天,本季度天数,本月天数
[sql]MySQL里获取当前week、month、quarter的第一天/最后一天 当前week的第一天: select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 1 DAY) from dual 当前week的最后一天: select date_sub(curdate(),INTERVAL WEEKDA...原创 2019-10-30 17:13:31 · 2067 阅读 · 0 评论 -
mysql中当某个字段不是null是空字符时如何使用ifnull()判断
先用trim()方法处理该字段,然后用length()方法判断长度大于零不是空保留该字段,否则替换为null,然后就可以用ifnull()方法了;语句:ifnull ( if(length(trim(表.字段))>0,表.字段,null), 表.字段1)...原创 2019-10-10 14:40:48 · 4572 阅读 · 0 评论 -
mysql 中concat函数使用后导致的乱码问题
最近遇到使用concat函数乱码问题,在mysql客户端中单条语句执行正常,left join后产生乱码,在页面展示的时候乱码。开始以为是编辑问题,发现不是,最后发现是使用concat函数连接参数的类型问题解决方法使用concat函数时,需要转换参数类型:concat(cast(val1 as char),cast(val2 as char),......)类型统一为字符的话...原创 2019-08-01 11:37:36 · 672 阅读 · 0 评论 -
正确认识Access denied for user 'root'@'localhost' (using password: YES)
前言项目临近上线,需要准备部署工作。项目在选择服务器的时候,最终领导确定的是自购服务器,为了确保工作顺利,刚好手上有一台新电脑,我开始从零配置服务器之路。一路遭遇的坎坷 ,难以形容。可能用多了阿里云的web界面之后,人的水平也下降很多。Access denied for user 'root'@'localhost' (using password: YES) 是本地运维中遇到...转载 2019-05-05 14:11:11 · 2615 阅读 · 0 评论 -
MySQL基本概念--索引&索引类型
索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL ); 我们随机向里面插入了10000条记录...原创 2018-05-22 14:19:53 · 196 阅读 · 0 评论 -
mysql增删改查语句大全
#登录数据库mysql -hlocalhost -uroot -p;#修改密码mysqladmin -uroot -pold password new;#显示数据库show databases;#显示数据表show tables;#选择数据库use examples;#创建数据库并设置编码utf-8 多语言create database `examples` default character s...转载 2018-05-21 16:05:37 · 36698 阅读 · 4 评论 -
win7系统下载安装配置MySQL-5.7.19-winx64.zip
1.下载地址:http://dev.mysql.com/downloads/mysql/。点击最下边连接,不登录下载2.解压我的解压路径为:E:\mysql-5.7.19-winx643.my.ini文件自己创建在E:\mysql-5.7.19-winx64(自己的解压目录),可复制以下内容:[mysql]# 设置mysql客户端默认字符集default原创 2017-09-09 08:57:26 · 492 阅读 · 0 评论