
mysql
文章平均质量分 76
波波仔86
生活与技术并发!
展开
-
mycat的介绍及使用
mycat分库分表转载 2022-09-20 22:28:21 · 1198 阅读 · 0 评论 -
MySQL中的any_value()函数
MySQL5.7之后,sql_mode中ONLY_FULL_GROUP_BY模式默认设置为打开状态。ONLY_FULL_GROUP_BY的语义就是确定select target list中的所有列的值都是明确语义,简单的说来,在此模式下,target list中的值要么是来自于聚合函数(sum、avg、max等)的结果,要么是来自于group by list中的表达式的值。网上有很多通过修改sql_mode的方式来解决此问题。但除此方法,MySQL也提供了any_value()函数来抑制转载 2021-08-22 21:32:00 · 1161 阅读 · 0 评论 -
mysql之group_concat函数详解
函数语法:group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )下面举例说明:select id,price from goods; 以id分组,把price字段的值在同一行打印出来,逗号分隔(默认)select id, group_concat(price) from goods group by id; 以id分组,把price字段的值在一行打印出来,分号分隔..转载 2021-08-22 21:26:35 · 503 阅读 · 0 评论 -
对mysql乐观锁、悲观锁、共享锁、排它锁、行锁、表锁概念的理解
记得在上大学那会开始,在大学的课堂上,常常会听到老师讲什么共享锁,排它锁各种锁的词汇,以前仅仅听过一次就没有管了,并没有进行深入的研究最近,在各种群里,又看见了什么乐观锁、悲观锁什么鬼的感觉很高级的词汇,于是乎今天对这几个概念进行学习,揭开它神秘的面纱,缕缕思路记录下我对这几个概念的想法实验环境:mysql5.6存储引擎:innoDB我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突)乐观锁乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指操作数据库时.转载 2021-05-09 22:09:17 · 140 阅读 · 0 评论 -
mysql索引-B+树
索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。索引最形象的比喻就是图书的目录了。注意这里的大量,数据量大了索引才显得有意义,如果我想要在 [1,2,3,4] 中找到 4 这个数据,直接对全数据检索也很快,没有必要费力气建索引再去查找。索引在 MySQL 数据库中分三类:B+ 树索引 Hash 索引 全文索引我们今天要介绍的是工作开发中最常接触到的 InnoDB 存储引擎中的 B+ 树索引。要介绍 B+ 树索引,就不得不提二叉查找树,平衡二叉树和 B 树这三种数据结转载 2021-05-09 21:56:12 · 175 阅读 · 0 评论 -
理解B+树
B+树是为磁盘和存储工具设计的一种数据结构,它是一种平衡查找树,它在查找,插入、修改方面的时间复杂度都稳定为 O(logn)节点B+树节点是一组按照key有序的元素,B+树包含两种类型的节点,一种是索引节点,一种是叶子节点索引节点也叫内部节点,索引节点只包含key,不包含data, 节点的 key是升序排列的,对于指定的索引节点key来说,它左子树上所有的key都小于它的key,它右子树上所有的key都大于等于它的key 叶节点上存储的是主键和数据(key和data), 所有的叶节点都在同转载 2021-05-09 21:15:03 · 2829 阅读 · 0 评论 -
二叉树的四种遍历算法
二叉树作为一种重要的数据结构,它的很多算法的思想在很多地方都用到了,比如STL算法模板,里面的优先队列、集合等等都用到了二叉树里面的思想,先从二叉树的遍历开始:看二叉树长什么样子:我们可以看到这颗二叉树一共有七个节点0号节点是根节点1号节点和2号节点是0号节点的子节点,1号节点为0号节点的左子节点,2号节点为0号节点的右子节点同时1号节点和2号节点又是3号节点、四号节点和五号节点、6号节点的双亲节点五号节点和6号节点没有子节点(子树),那么他们被称为‘叶子节点’这就是一些基本转载 2021-04-26 21:53:19 · 9960 阅读 · 0 评论 -
mysql重做日志
重做日志(redo log)作用: 确保事务的持久性。 防止在发生故障的时间点,尚有脏页未写入磁盘,在重启mysql服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性。内容: 物理格式的日志,记录的是物理数据页面的修改的信息,其redo log是顺序写入redo log file的物理文件中去的。什么时候产生: 事务开始之后就产生redo log,redo log的落盘并不是随着事务的提交才写入的,而是在事务的执行过程中,便开始写入redo log文件中。什么时转载 2021-04-13 22:56:20 · 609 阅读 · 0 评论 -
MySQL中 Schema和Database的区别
在MySQL中,schema和database是同义词.CREATE SCHEMA和CREATE DATABASE是等效的.但是其他的数据库产品(几乎所有数据库)有所不同.在oracle数据库产品中,schema是database的一部分.表示the tables and other objects owned by a single user....转载 2020-11-26 17:49:07 · 5763 阅读 · 0 评论 -
数据库脏读、不可重复读、幻读
1. 脏读 :脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。2. 不可重复读 :是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。例如,一个编辑人员两次读取同一文档,但在两次读取之间,作者重写.转载 2020-11-25 21:44:58 · 2121 阅读 · 0 评论 -
mysql的for update
一、for update背景1、for update叫排它锁,是一种行级锁,一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行.如果其它用户想更新该表中的数据行,则也必须对该表施加行级锁.即使多个用户对一个表均使用了共享更新,但也不允许两个事务同时对一个表进行更新,真正对表进行更新时,是以独占方式锁表,一直到提交或复原该事务为止。行锁永远是独占方式锁。只有当出现如下之一的条件,便释放共享更新锁:(1)、执行提交(COMMIT)语句;(原创 2020-11-24 21:38:24 · 713 阅读 · 0 评论 -
mysql中的行级锁、表级锁、页级锁
在DBMS中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引擎)、表级锁(MYISAM引擎)和页级锁(BDB引擎 )。行级锁行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大。行级锁分为共享锁和排他锁。特点开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。共享锁(S锁):共享 (S) 用于不更改或不更新数据的操作(只读操作),如 SELECT 语句。如果事..转载 2020-11-24 20:48:48 · 887 阅读 · 0 评论 -
MySQL-locate()函数
判断字符串(string)中是否包含另一个字符串(subStr)locate(subStr,string) :函数返回subStr在string中出现的位置// 如果字符串 string 包含 subStrlocate(subStr,string) > 0 // 如果字符串 string 不包含 subStrlocate(subStr,string) = 0使用方式SELECT * FROM party_course_studyWHERE LOCATE(findCode, .转载 2020-10-26 22:28:09 · 553 阅读 · 0 评论 -
mysql之group_concat函数详解
函数语法:group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )下面举例说明:select id,price from goods; 以id分组,把price字段的值在同一行打印出来,逗号分隔(默认)select id, group_concat(price) from goods group by id; 以id分组,把price字段的值在一行打印出来,分号分隔s转载 2020-10-26 22:23:53 · 543 阅读 · 0 评论 -
mysql表名大小写设置
1 简介在MySQL中,数据库对应数据目录中的目录。数据库中的每个表至少对应数据库目录中的一个文件(也可能是多个,取决于存储引擎)。因此,所使用操作系统的大小写敏感性决定了数据库名和表名的大小写敏感性。在大多数Unix中数据库名和表名对大小写敏感,而在Windows中对大小写不敏感。一个显著的例外情况是Mac OS X,它基于Unix但使用默认文件系统类型(HFS+),对大小写不敏感。然而,Mac OS X也支持UFS卷,该卷对大小写敏感,就像Unix一样。变量lower_ca...转载 2020-07-08 21:54:30 · 6912 阅读 · 1 评论 -
mysql Blob和Text类型
一、基本概念1.Text类型(大文本系列)===>>VARCHAR的增强TINYTEXT: 255个字节TEXT: 65535字节 MEDIUMTEXT: 16MLONGTEXT: 4G2.Blob类型(大二进制系列)==...原创 2020-06-18 22:23:54 · 1326 阅读 · 0 评论 -
Mysql中Cast()函数的用法
Cast(字段名 as 转换的类型 ),其中类型可以为:CHAR[(N)] 字符型DATE 日期型DATETIME 日期和时间型DECIMAL float型SIGNED intTIME 时间型例如表table1date2015-11-03 15:31:26select cast(date as signed) as date from table1;...转载 2020-04-22 22:22:06 · 576 阅读 · 0 评论 -
MySQL中字符串与数字比较的坑
公司项目代码中,某枚举字段数据库表中类型是char(1),在代码中,误以为是TINYINT,所以用数字筛选,后来发现结果不对。发现了一个现象,用数字0筛选会把所有的记录给筛选出来。经过排查发现是在MySQL查询语句中,'abc'如果和'0'比较结果显然是不等的,但如果'abc'和0比较呢?结果居然是相等的。随意测试了几下,结果如下:mysql> select 'abc'=0;+...转载 2020-04-21 11:36:54 · 865 阅读 · 0 评论 -
MyBatis学习——databaseIdProvider和databaseId
有什么作用databaseIdProvider和databaseId的作用简单来说就是让一个项目支持不同的数据库。让一个项目支持不同的数据库在企业开发中是一个比较常见的需求。由于不同的数据库支持的sql语法稍有差别,所以某些功能需要根据数据库的不同书写不同的sql语句。对于这种需求,首先能够想到的解决方案就是针对不同的数据库维护不同的mapper.xml文件,但是这种方案会严重增加开发和维...转载 2020-04-13 23:10:34 · 11196 阅读 · 0 评论 -
Mysql中Union的子句不支持order by
我对DB知之甚少,这问题只在Mysql遇到,不知道别的DBMS是不是也如此。问题是这样的,我打算在一个表里获得与某一行记录相邻的两行,并且想通过union一起取出来,所以这么写:select id,title from subjects where id>#some_id# order by id limit 1unionselect id,title from subjects ...转载 2020-03-31 20:24:53 · 417 阅读 · 0 评论 -
mysql高并发插入慢
最近在对程序进行压力时,发现一个接口在高并发插入时,响应很慢,大概需要15秒左右。分析记录解决方案。1、代码优化发现接口实现类中有个地方做了代码同步控制synchorized,分析后感觉没必要就去掉了,性能提高到7秒左右,虽然提高了,大还是不行,进一步优化。2、数据库配置修改数据库安装时,没有修改任何配置,全部为默认配置,网上查询解决方案:1、sync_binlog和inno...原创 2020-03-17 17:26:08 · 5905 阅读 · 0 评论 -
【数据库】外键的约束与更新
1、准备测试工作MySQL外键约束删除时和更新时各取值的含义,创建2个表,分别为studnet 学生表和monitor 班长表:学生表有学号和姓名2个属性;班长表有班级和学号2个属性。班长表设置外键学号,连接主表学生表的学号属性。并插入数据如图:2、删除时属性,可能取值如上图为:默认(RESTRICT),RESTRICT,No ACTION,CASCAD...转载 2020-01-17 10:52:32 · 2555 阅读 · 0 评论 -
使用连接mysql的jdbc驱动最新版引发的问题
使用JDBC连接MySql时出现:The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration...原创 2019-11-19 16:49:37 · 197 阅读 · 0 评论 -
group by用法提示:select涉及字段规则
工资表t_salary如下:id month name salary 1 201601 Jim 12 2 201601 Bruce 30 3 201601 Peter 23 1 201602 Jim 20 示例一: select id,sum(sal...转载 2019-11-12 10:28:51 · 2371 阅读 · 0 评论 -
MySQL之分布式事务
1.分布式事务原理在MySQL中,使用分布式事务的应用程序涉及一个或多个资源管理器和一个事务管理器1> 资源管理器(RM) 用于提供通向事务资源的途径。数据库服务器是一种资源管理器。该管理器必须可以提交或回滚由RM 管理的事务。2> 事务管理器(TM)用于协调作为一个分布式事务一部分的事务。TM于管理每个事务的RMs进行通信。在一个分布式事务中,各个单个事务均是分布式事务的...转载 2019-10-31 14:23:05 · 472 阅读 · 0 评论 -
mysql delete和truncate区别
项目 delete truncate 添加where条件 可以添加 不可以添加 执行效率 略高 高 自增长列 delete删除后,插入数据的自增长 列值从断点开始 truncate删除后,插入数据的自增长 列值由1开始 返回值 执行后有返回值 执行后没有返回值 事务回滚...原创 2019-10-29 18:39:04 · 233 阅读 · 0 评论 -
mysql concat实现简单多字段模糊查询
背景之前对于模糊查询使用like,like只能对单字段进行检索,如果使用多字段,必须使用or拼接,这样的话索引就会失效。网上查询大家都使用concat可以进行多个字段检索。concat功能 将多个字符串连接成一个字符串语法CONCAT(str1, str2,...)注意:返回值,由全体出入参数合并在一起而得到的字符串。只要输入的参数中有NULL值,就返回NUL...原创 2019-10-28 19:12:54 · 1690 阅读 · 0 评论 -
MySQL left join操作中on与where放置条件的区别
优先级两者放置相同条件,之所以可能会导致结果集不同,就是因为优先级。on的优先级是高于where的。首先明确两个概念:LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在left join下,两...转载 2019-10-18 14:17:19 · 229 阅读 · 0 评论 -
解决com.mysql.jdbc.PacketTooBigException: Packet for query is too large (3158064)问题
原文源自:https://blog.youkuaiyun.com/fly0744/article/details/13623079在做查询数据库操作时,报了以上错误,还有out of memery heap hacp ,原因是mysql的max_allowed_packet设置过小引起的,我一开始设置的是1M,后来改为了20Mmysql根据配置文件会限制server接受的数据包大小。有时候大的插入和更新会被m...转载 2018-06-03 19:09:43 · 380 阅读 · 0 评论 -
mysql操作datetime字段统一加上一星期的时间
mysql操作datetime字段统一加上一周的时间:update test set time = DATE_ADD(time,INTERVAL 7 DAY)原创 2018-03-14 15:42:31 · 3169 阅读 · 0 评论 -
mysql错误SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\xBF\xAA\xB7\xEF\xBF...'
今天在运行程序插入数据库时,出现了如下的bug:org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [replace into task_result values(?,?,?,?)]; SQL state [HY000];...原创 2018-03-07 19:26:07 · 8667 阅读 · 0 评论 -
mysql中常用的工具
在mysql的日常工作和管理中,用户经常会用到mysql提供的各种管理工具,比如对象查看、数据备份、日志分析等,熟练使用这些工具将会大大提高工作效率,下面列出了mysql提供的常用工具,具体的用法读者可以网上查阅相关资料。1、mysql(客户端连接工具)这里的mysql不是指mysql服务,也不是指mysql数据库,而是只连接数据库的客户端工具。例如登录mysql:mysql -u roo原创 2017-12-06 19:06:42 · 1206 阅读 · 0 评论 -
mysql日志
任何一种数据库都存在日志,记录着数据库工作的方方面面,以帮组数据库管理员追踪数据库曾经发生过的各种事件。mysql也不例外,在mysql中有4中不同的日志,分别记录错误日志、二进制日志(binlog日志)、查询日志和慢查询日志,这些日志分别记录着数据库在不同方面的踪迹。1、错误日志错误日志是mysql中最重要的日志之一,它记录了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重原创 2017-12-06 14:39:57 · 322 阅读 · 0 评论 -
mysql的boolean和tinyint(1)
boolean类型MYSQL保存BOOLEAN值时用1代表TRUE,0代表FALSE,boolean在MySQL里的类型为tinyint(1),MySQL里有四个常量:true,false,TRUE,FALSE,它们分别代表1,0,1,0,mysql> select true,false,TRUE,FALSE;+------+-------+------+-------+| T原创 2017-12-13 20:53:03 · 669 阅读 · 0 评论 -
Windows 压缩包安装MySQL
根据自己的操作系统下载对应的32位或64位的压缩包。按如下步骤操作:第一步:解压缩将压缩包解压到C:\Program Files\MySQL路径下,也可以自定义路径。我的路径为C:\Program Files\MySQL\mysql-5.7.10-winx64,如下图:第二步:配置环境变量右键点击“计算机”,选择“属性”,依次打开“高级系统设置”->“环境变量”,在系统变...原创 2018-08-01 21:39:01 · 229 阅读 · 0 评论 -
mysql truncate delete 释放磁盘空间
我的mysql一张表中有1000万条记录,我使用delete删除记录后,虽然表为空,但是我使用navicate打开表时,加载还是很慢。于是我执行下truncate,打开就很快了。网上查下作者这样说的:truncate table tablename;该命令可以清空一个表里的所有数据,并归1自增ID的值。但myisam的表和innodb的表在使用上有一定的区别。myisa...原创 2018-11-27 16:39:21 · 1510 阅读 · 0 评论 -
数据库设计三大范式
什么是三大范式:第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单元时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求。第二范式:如果关系R满足第一范式,并且R的所有非主属性完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。第三范式:设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,...原创 2019-01-18 15:15:58 · 463 阅读 · 0 评论 -
join on和where执行顺序
原文源自:https://zoroeye.iteye.com/blog/22313321、join中相比where优先推荐on WHERE子句中使用的连接语句,在数据库语言中,被称为隐性连接。INNER JOIN……ON子句产生的连接称为显性连接。(其他JOIN参数也是显性连接)WHERE和INNER JOIN产生的连接关系,没有本质区别,结果也一样。但是!隐性连接随着...转载 2019-01-29 14:05:01 · 35908 阅读 · 3 评论 -
mysql中order by多条件排序的写法
我们在查询数据的时候,有时会用到多字段排序,下边让我们一起来看看mysql的多条件排序写法。mysql多条件排序使用”,“隔开,例如:select * from 表 order by 列1 asc,列2 ascmysql会对查询先按照列1的值排序,当列1中有重复数据的时候、在按列2里面的值来排序,如果有列3就是按照列2里面的重复数据来排列,以此类推。ORDER子句按一个或多个(最多不超...原创 2019-03-04 10:41:09 · 18110 阅读 · 0 评论 -
数据库事物与锁关系
1、什么是事物事务就是把多件事情当做一件事情来处理。是数据库操作的最小单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元)。2、为什么要有事物事务的提出就是为了解决并发情况下保持数据一致性的问题。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。3、事物与锁关...原创 2019-05-06 21:42:56 · 981 阅读 · 0 评论