mysql
文章平均质量分 63
记录本人在学习Mysql数据库是遇见的问题,知识的总结。
伏加特遇上西柚
犹如烈焰般的伏特加和温柔酸甜的西柚碰撞在一起,将是一种美好的相遇。
展开
-
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure异常处理
【代码】com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure异常处理。原创 2024-07-02 20:42:01 · 257 阅读 · 0 评论 -
MySQL锁详解及案例分析
全局锁:锁的是整个database。由MySQL的SQL layer层实现的表级锁:锁的是某个table。由MySQL的SQL layer层实现的行级锁:锁的是某行数据,也可能锁定行之间的间隙。由某些存储引擎实现,比如InnoDB。共享锁和排他锁。1、兼容性:加了S锁的记录,允许其他事务再加S锁,不允许其他事务再加X锁2、加锁方式:select…lock in share mode1、兼容性:加了X锁的记录,不允许其他事务再加S锁或者X锁2、加锁方式:select…for update。原创 2023-04-25 21:38:51 · 1251 阅读 · 0 评论 -
MySQL索引原理及实战
官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书前面 的目录,能加快数据库的查询速度。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中的(可能存储在单独的索引文件中,也可能和数据一起存储在数据文件中)我们通常所说的索引,包括聚集索引、覆盖索引、组合索引、前缀索引、唯一索引等,没有特别说明,默认都是使用B+树结构组织(多路搜索树,并不一定是二叉的)的索引。每个InnoDB表都有一个聚簇索引 ,聚簇索引使用B+树。原创 2023-04-19 23:11:44 · 457 阅读 · 0 评论 -
sql索引优化实战总结
一、 避免索引失效-- 最左匹配原则 * -- 范围条件右边的索引失效-- 不再索引列上做任何操作 * -- 使用不等于(!=或者<>)索引失效-- is not null无法使用索引-- like以通配符开头(%qw)索引失效 * -- 字符串不加引号索引失效-- 使用or连接索引失效-- 尽量使用覆盖索引1.1 全值匹配-- 创建组合索引create index idx_name_dep_age on employee(name,dep_id,age)-- 索引字原创 2022-05-31 10:14:42 · 1356 阅读 · 0 评论 -
explain分析sql语句性能详解
explain分析sql语句性能详解一、概念及作用二、使用方法三、 参数详解3.1 **id**(重要)3.2 select_type一、概念及作用使用explain关键字,可以模拟优化器执行的SQL语句,从而知道MYSQL是如何处理sql语句的。通过Explain可以分析查询语句或表结构的性能瓶颈具体作用:查看表的读取顺序数据读取操作的操作类型查看哪些索引可以使用查看哪些索引被实际使用查看表之间的引用查看每张表有多少行被优化器执行二、使用方法使用Expla原创 2022-05-23 17:15:10 · 6422 阅读 · 0 评论 -
mysql更新时条件为一查询
场景:表A业务单元表里面有业务单元名称和业务单元编码.表B应用表里面有存储自身数据和业务单元名称,业务单元编码。问题:表B中业务单元编码是错的,现在想修改和表A中业务单元编码一致。两张表可以通过业务单元名称关联。表A和表B通过业务单元名称(unit_name)关联作为更新条件...原创 2022-07-01 10:42:51 · 379 阅读 · 0 评论 -
mysql行转列和列转行案例
mysql行转列和列转行案例一 行转列1、使用case...when....then 进行行转列2、使用IF() 进行行转列:列转行一 行转列即将原本同一列下多行的不同内容作为多个字段,输出对应内容。建表语句DROP TABLE IF EXISTS tb_score;CREATE TABLE tb_score( id INT(11) NOT NULL auto_increment, userid VARCHAR(20) NOT NULL COMMENT '用户id',原创 2022-05-31 11:16:29 · 181 阅读 · 1 评论 -
MySQL索引原理及慢查询优化
1、MySQL索引原理及慢查询优化原创 2022-05-15 21:44:12 · 225 阅读 · 0 评论 -
Lock wait timeout exceeded; try restarting transaction
参考1参考2原创 2022-04-22 14:31:05 · 112 阅读 · 0 评论 -
mysql 如何判断 “字符串“ 是否为纯数字
说明现在有这样一个场景,数据库中一个字段是varchar型,里面既存字符串又存纯数字的。现在想查出来纯数字的数据。例如下图中opp_management_code既有纯数字又有混合的。使用正则匹配1、查出条件为纯数字的数据SELECT * FROM `opp_data_his_copy2` where trim(opp_management_code) REGEXP '[^0-9]'=0 trim()函数如果字符串中有空格,也会匹配到正则表达式,返回1。如果是要去掉两端的空格,就要将判原创 2022-04-22 14:22:46 · 6810 阅读 · 0 评论 -
两张表中,根据关系表的关键字查询主表信息
1、需求背景:1需要根据概念的描述名称来查询概念信息2、解决步骤第一步,将关系表的概念描述名称(CONCEPTUAL_DETAIL_NAME),拼接到概念表中SELECT KC.*, ( SELECT wm_concat ( KCD.CONCEPTUAL_DETAIL_NAME ) FROM KNW_CONCEPTUAL_DETAIL KCD WHERE KCD.CONCEPTUAL_SOID = KC.CONCEPTUAL_SOID AND KCD.CONCEPTUAL_DETAIL_原创 2021-03-25 17:39:16 · 509 阅读 · 0 评论 -
模糊查询忽略大小写解决方案
问题描述:通常在数据库存入的英文数据会有大小写混合的情况,在模糊查询时数据库对关键字的大小写不明感,我们需要对数据进行处理才能正确的搜索出数据。例如:数据库中英文名称存入的Tom搜索关键字:Tom,T,To,能够正确的检索出来搜索关键字:TOM,TO是搜索不出来的。解决方案:统一将关键字转为大写或者小写,对应的数据库字段也要转为大写或者小写SELECT * FROM USER WHERE UPPER( EN_NAME ) LIKE CONCAT( CONCAT( '%',UPPER(#{原创 2021-03-21 22:22:15 · 4747 阅读 · 5 评论 -
@Intercepts-mybatis拦截器
1、实现sql语句和sql执行时间输出import java.text.DateFormat;import java.util.Date;import java.util.List;import java.util.Locale;import org.apache.ibatis.executor.Executor;import org.apache.ibatis.mapping.BoundSql;import org.apache.ibatis.mapping.MappedStatement原创 2021-03-17 16:06:43 · 1548 阅读 · 0 评论 -
mysql索引及性能优化
什么是索引索引就是数据结构,通过这种数据结构可以大大提高mysql的查询效率索引的作用当表中的数据量越来越大时,索引对于性能的影响愈发重要。索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高好几个数量级。有了索引相当于我们给数据库的数据加了目录一样,可以快速的找到数据,如果不适用索引则需要一点一点去查找数据简单来说提高数据查询的效率。索引的分类- 1.普通索引index :加速查找- 2.唯一索引- 3.联合索引(组合索引)- 4.全文索引fulltext :用于原创 2020-12-10 21:59:54 · 206 阅读 · 0 评论 -
左外连接和右外连接是什么样的?
1左外连接左表的记录都会出现在结果集中,并上右表与之对应的部分,如果右表没有,使用null填充。举例。select * from people p left join role r p.id=r.id左外连接结果:2、右外连接右表的记录都会出现在结果集中,并上左表与之对应的部分,如果左表没有,使用null填充。select * from people p right join role r p.id=r.id右外连接结果:...原创 2020-10-16 08:52:35 · 6069 阅读 · 0 评论 -
sql注入问题
sql注入问题问题引入:我们让用户输入的密码和SQL语句进行字符串拼接。用户输入的内容作为了SQL语句语法的一部分,改变了原有SQL真正的意义,以上问题称为SQL注入。 Connection conn = JdbcUtil.getConn(); Statement statement = conn.createStatement(); String sql = "select * from user where name='" + name + "' and passwo原创 2020-08-01 17:32:09 · 133 阅读 · 0 评论 -
Mysql事务的介绍
1.什么是事务?事务是为了解决一组查询要么全部执行成功,要么全部执行失败。mysql事务默认是自动提交的模式。2.事务的四大特性:(1) 原子性(Atomicity):整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停留在某个中间环节。事务在执行的过程中发生错误,会被回滚到事务开始前的状态,就像这个事务重来没有执行过一样。(2)一致性(Consistency):事务执行前,执行后。数据库的状态应该是一致的。比如银行转账。转账前2个人总额和转账后2个人总额应该是一致的。(3)隔离性(Iso原创 2020-07-31 10:42:23 · 278 阅读 · 0 评论 -
select 语句完整的查询顺序
select 语句完整的查询顺序select 字段 from 表1 别名 连接类型 join 表2 on 连接条件 where 条件1 group by 分组字段 having 条件2(一般是分组条件) order by 排序字段 (desc/asc) limit 索引,最大查询数量;DQL查询语言执行顺序from ...join...on... where ... group by ...原创 2020-07-28 20:24:01 · 1920 阅读 · 0 评论 -
Mysql5.6数据库软件安装
Mysql5.6安装安装过程:1. 打开MySQL的安装包,双击运行:mysql-installer-community-5.6.22.0.msi2.选择安装模式3.MySQL版本选择如果电脑是64位系统,就选择64位服务器如果电脑是32位系统,就选择32位服务器4.安装目录可以选择MySQL的服务器安装目录和数据安装目录,我这里是均选择安装到默认目录小建议: 可以将在软件盘当中新建两个文件夹,分别作为服务器安装目录和数据库安装目录(文件夹名最好不要有中文!!!)配置原创 2020-07-25 18:01:27 · 461 阅读 · 0 评论 -
如何将Mysql卸载干净
Mysql5.6卸载干净彻底当我们重装新的版本MySQL时,或者装上的MySQL不能使用,简单的卸载之后是不能成功安装的。本篇文章详细介绍Mysql彻底卸载的步骤。1.程序卸载2.找到对应的安装目录,将安装目录下的配置删除.将以下路径的Mysql文件夹删除,有三处具体步骤如下图所示:删除的文件都在C盘当中位置如下所示①:C:\Program Files\MySQL②:C:\Program Files (x86)\MySQL③:C:\ProgramData\MySQL3.删除注册表原创 2020-07-25 16:23:53 · 1118 阅读 · 0 评论