Mysql
文章平均质量分 63
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
MySQL因为其速度、可靠性和
男人要霸气
这个作者很懒,什么都没留下…
展开
-
MySQLSyntaxErrorException:‘t5.id‘ isn‘t in GROUP BY(修改mysql中的sql_mode)
sql_mode翻译 2022-09-26 10:28:27 · 441 阅读 · 0 评论 -
Mysql redo log 写入策略和binlog 写入策略
redo log的写入策略InnoDB提供了innodb_flush_log_at_trx_commit参数,它有三种可能取值:设置为0的时候,表示每次事务提交时都只是把redo log留在redo log buffer中;设置为1的时候,表示每次事务提交时都将redo log直接持久化到磁盘;设置为2的时候,表示每次事务提交时都只是把redo log写到page cache。查看mysql变量:show VARIABLES LIKE 'innodb_flush_log_at_trx_comm原创 2022-04-25 20:50:04 · 1097 阅读 · 0 评论 -
MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
一:报错信息MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction具体报错信息如下图:二:伪代码三:报错原因通过错误日志可以看出,错误原因跟 锁、事务有关,字面意思是:锁等待超时,请尝试新的事务其实在开发过程中并未报错,后来到了仿真环境,因为是员工端的原因,并发量略高,执行上面逻辑的第4步时,比较耗时,导致新的请求过来的时候,锁还未释放(因为无论删除、插入、还是更新、原创 2022-04-21 00:25:55 · 3368 阅读 · 0 评论 -
Mysql常用函数
文章目录算术函数字符串函数日期函数转换函数算术函数算术函数,顾名思义就是对数值类型的字段进行算术运算。常用的算术函数及含义如下表所示:比如:SELECT ABS(-2),运行结果为 2。SELECT MOD(101,3),运行结果 2。SELECT ROUND(37.25,1),运行结果 37.3。字符串函数常用的字符串函数操作包括了字符串拼接,大小写转换,求长度以及字符串替换和截取等。具体的函数名称及含义如下表所示:比如:SELECT CONCAT(‘abc’, 123),运原创 2021-07-13 16:11:21 · 409 阅读 · 0 评论 -
(亲测)MySQL集群搭建-主备搭建
数据库在任何业务中都是最重要的环节之一,这就对数据库架构提出的较高的要求。单点数据库永远不应该出现在生产环境,我们已经目睹过太多由于单点、备份缺失造成的损失,所以,搭建高可用 MySQL 集群是非常有必要的。搭建集群有以下几点好处:高可用性,在主节失效时自动切换,不需要技术人员紧急处理高吞吐,可以多个节点同时提供读取数据服务,降低主节点负载,实现高吞吐可扩展性强,支持在线扩容无影响备份,在备节点进行备份操作不会对业务产生影响要说缺点,有以下几点:架构复杂,在部署、管理方面对技术人员有要求备节翻译 2021-04-28 17:46:14 · 1165 阅读 · 0 评论 -
linux上安装MySQL(二进制版)
MySQL 的安装方式一般分为三种,二进制版本、编译版本、RPM 包。比较常见的是二进制版本安装,方便简单,相对于编译安装,如果不是追求极致性能,使用起来差别不大。本次教程以二进制版本为例,系统为 centos6.8,MySQL 版本为5.7.20。...转载 2021-04-28 14:04:51 · 590 阅读 · 1 评论 -
Mysql 报错:Cannot add or update a child row: a foreign key constraint fails
错误信息:insert into student (id,name,age,tid) VALUES ( 1,'张三',18,1)> 1452 - Cannot add or update a child row: a foreign key constraint fails (`db123`.`student`, CONSTRAINT `tid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`))> 时间: 0.12s表结构:studen原创 2021-04-16 15:15:54 · 23785 阅读 · 3 评论 -
MySql版本问题sql_mode=only_full_group_by的完美解决方案
1、查看sql_modeselect @@sql_mode查询出来的值为:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION2、去掉ONLY_FULL_GROUP_BY,重新设置值。set @@sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_I转载 2020-10-15 13:33:46 · 1039 阅读 · 0 评论 -
Mysql执行计划中eq_ref和ref类型的区别
eq_ref - 想象你有两张桌子。表A包含列(id,text),其中id是主键。表B具有相同的列(id,text),其中id是主键。表A包含以下数据:1, Hello 2, How are表B有以下数据:1, world!2, you?想象一下eq_ref为A和B之间的JOIN:select A.text, B.text where A.ID = B.ID这个JOIN非常快,因为对于表A中扫描的每一行,表B中只能有一行满足JOIN条件。一个,不超过一个。那是因为B.id是独一无二的。翻译 2020-08-25 17:08:34 · 16294 阅读 · 13 评论 -
Mysql order by没效果怎么解决?
下面先来看下表结构CREATE TABLE `person` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `age` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;注意age字段是varchar类型问题重现SELECT * FROM `person` order by age ASC;原创 2020-08-21 22:01:53 · 969 阅读 · 0 评论 -
Mysql 查看数据库(字段/索引/数据)存放的位置
SHOW VARIABLES LIKE '%datadir%'原创 2020-06-23 13:40:20 · 1503 阅读 · 0 评论 -
拜托,别再问我什么是B+树 了
前言每当我们执行某个 SQL 发现很慢时,都会下意识地反应是否加了索引,那么大家是否有想过加了索引为啥会使数据查找更快呢,索引的底层一般又是用什么结构存储的呢,相信大家看了标题已经有答案了,没错!B+树!那么它相对于一般的链表,哈希等有何不同,为何多数存储引擎都选择使用它呢,今天我就来揭开 B+ 树的面纱,相信看了此文,B+ 树不再神秘,对你理解以下高频面试题会大有帮助!为啥索引常用 B+ 树作为底层的数据结构除了 B+ 树索引,你还知道什么索引为啥推荐自增 id 作为主键,自建主键不行吗什么是转载 2020-06-09 11:36:30 · 243 阅读 · 0 评论 -
Mysql中limit和offset用法
limit m offset nm:展示m条n:跳过n条直接看例子思路一:用offset跳过select Salary from Employee order by Salary desc limit 1 offset 1思路二:用limitselect Salary from Employee order by Salary desc limit 1,1...原创 2020-04-21 11:15:43 · 409 阅读 · 0 评论 -
mysql变量的定义及使用
MySQL中用户变量不用事前申明,在用的时候直接用“@变量名”使用就可以了。第一种用法:set @num=1; 或set @num:=1; //这里要使用set语句创建并初始化变量,直接使用@num变量第二种用法:select @num:=1; 或 select @num:=字段名 from 表名 where ……,select语句一般用来输出用户变量,比如select @变量名,用于输出数...转载 2020-03-12 14:09:19 · 465 阅读 · 0 评论 -
IDEA关联mysql失败 Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon'
时区错误,MySQL默认的时区是UTC时区,比北京时间晚8个小时。所以要修改mysql的时长在mysql的命令模式下,输入:set global time_zone='+8:00';再次连接成功...转载 2019-12-27 11:51:30 · 205 阅读 · 0 评论 -
mysql索引什么时候失效
这篇文章主要验证对于组合索引,只要命中了组合索引中的第一个字段,都会使用索引索引失效的几种情况如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引对于组合索引,只要命中了组合索引中的第一个字段,都会使用索引like查询以%开头如果列类型是字符串,那一定要在条件中将数据使用引...原创 2019-09-04 22:45:56 · 1206 阅读 · 2 评论 -
Mysql case when 实现行转列时为什么要用max()或者其他聚合函数
Mysql case when 实现行转列时为什么要用max()或者其他聚合函数mysql中的case when语句查询结果问题原始数据:不加max进行case when加max:很明显两次结果不同,不加max结果不对,熟悉分组聚合的同学应该一下就明白了这里还是进行下说明为什么要加max,这里直接采用这位网友的答案:另外的解释:这里相信大家都知道了为什么要加聚合函数...转载 2019-09-01 21:34:44 · 671 阅读 · 0 评论 -
MySQL行转列
一、行转列实例1、准备数据CREATE TABLE tb(`cname` VARCHAR(10),cource VARCHAR(10),score INT) ENGINE=INNODB; INSERT INTO tb VALUES('张三','语文',74);INSERT INTO tb VALUES('张三','数学',83);INSERT INTO tb VALUES('张三','...翻译 2019-09-01 21:26:11 · 613 阅读 · 0 评论 -
The server time zone value ‘�й���ʱ��’ is unrecognized or represents more than one time zone
错误信息:Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value ‘�й���ʱ��’ is unrecognized or represents more than one time zone. You must configure either th...原创 2019-08-18 12:42:25 · 1172 阅读 · 0 评论 -
MySQL中的锁(表锁、行锁,共享锁,排它锁,间隙锁)
本文参考:http://mysqlpub.com/thread-5383-1-1.htmlhttp://blog.csdn.net/c466254931/article/details/53463596有很多是转载合并过来。锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数...转载 2019-08-09 19:41:46 · 171 阅读 · 0 评论 -
Mysql默认存储引擎
此内容为转载,原版:https://blog.csdn.net/jswangchang/article/details/79419573Mysql在V5.1之前默认存储引擎是MyISAM;在此之后默认存储引擎是InnoDB查看默认存储引擎查看当前mysql默认引擎: show variables like ‘%engine%’;mysql> show variables li...转载 2018-09-09 10:35:14 · 4088 阅读 · 0 评论 -
mysql索引创建及使用
MySQL 索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。创建索引时,你需要确保该索...原创 2018-12-28 18:08:31 · 590 阅读 · 0 评论 -
MySql常用函数大全讲解
MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。例如,字符串连接函数可以很方便的将多个字符串连接在一起。在这一讲中将讲解的内容包括:数学函数字符串函数日期和时间函数条件判断函数系统信息函数加密函数格式化函数MySQL函数是MySQL数据库提供的内部函数...转载 2019-02-22 16:53:48 · 183 阅读 · 0 评论 -
Linux上安装mysql
本文为转载,原文为:https://blog.csdn.net/jxpxlinkui/article/details/79639501首先,在CentOS下,可以直接通过yum命令来安装数据库。在安装数据库之前,应该先查看自己的CentOS上是否已经安装了MySQL数据库,如果安装了就先卸载掉。查看是否安装了MySQL数据库rpm -qa | grep mysql得到的结果如下:这样...翻译 2019-02-18 13:29:57 · 166 阅读 · 0 评论 -
远程连接linux中的mysql报错1130解决办法
使用远程连接linux中mysql时出现的问题。解决方案:在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称’%’。。mysql -u root -pmysql>use mysql;mysql>select ‘host’ from user where user=‘root’;mysql>u...原创 2019-02-19 10:09:47 · 1994 阅读 · 0 评论 -
50道SQL练习题及答案与详细分析
网上流传较广的50道SQL训练,奋斗了不知道多久终于写完了。前18道题的难度依次递增,从19题开始的后半部分算是循环练习和额外function的附加练习,难度恢复到普通状态。第9题非常难,我反正没有写出来,如果有写出来了的朋友还请赐教。这50道里面自认为应该没有太多错误,而且尽可能使用了最简单或是最直接的查询,有多种不相上下解法的题目我也都列出了,但也欢迎一起学习的朋友进行讨论和解法优化啊~...转载 2019-03-02 15:11:09 · 3246 阅读 · 3 评论 -
IDEA连接MySQL数据库时报08001错误的解决方法
本文为转载,原文为:https://blog.csdn.net/qq_41541732/article/details/88380660有时候我们需要在IDEA中配置Database。但是使用IDEA默认生成的URL往往会报出一个080001的ERROR,通过尝试发现下面这条URL会解决此项错误。根据自己的需求更改下方的URL。jdbc:mysql://localhost:3306/in...转载 2019-05-13 14:12:31 · 4337 阅读 · 0 评论 -
MySQL replace语句
MySQL REPLACE语句是标准SQL的MySQL扩展。 MySQL REPLACE语句的工作原理如下:如果给定行数据不存在,那么MySQL REPLACE语句会插入一个新行。如果给定行数据存在,则REPLACE语句首先删除旧行,然后插入一个新行。Mysql中的replace into跟insert into用法类似:insert :会每次插入一条新的数据。replace:先看表...原创 2019-05-31 18:56:27 · 7533 阅读 · 0 评论 -
MySql中delimiter的作用是什么?
这个命令与存储过程没什么关系吧。其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。如输入下面的语句mysql> select * from test_table;然后回车,那么MySQL将立即执行该语句。但有时候,不希望MySQ...翻译 2019-06-26 14:02:23 · 1329 阅读 · 0 评论 -
Mysql安装报错2502/2503(不要太简单的方法)
首先出现这个问题 可能是版本与你的系统不合导致的,一般win7不会出现这情况,win8和win10多见网上所搜到的流程多还不易操作1:打开任务管理器2: 文件 ⇒ 运行新任务 ⇒ 输入【MySQL安装包的路径 + 扩展名】 PS:记得勾选“以系统管理权限创建此任务”然后…就没有然后了,直接启动安装文章来自:https://blog.csdn.net/qq_42544318/artic...转载 2019-06-23 17:26:40 · 335 阅读 · 0 评论 -
mysql存储过程
存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。创建存储过程:CREATE PROCEDURE +名创建存储函数:CREATE FUNCTION +名调用存储过程/存储函数:CALL +名存储过程创建及调用:创建存储过程test,参数:a、b CREATE PROCEDURE test (a INT...原创 2019-06-24 00:30:50 · 114 阅读 · 0 评论 -
mysql 存储过程/函数调试
对于某些存储过程很多且复杂的SQL的应用,在短时间内要使得所有MySQL存储过程和函数正常运行,那么如果能找到一个比较好的调试工具,就可以事半功倍, 这里介绍的是dbForge Studio for MySQL。工具官网地址:http://www.devart.com/dbforge/mysql/studio/注:安装完dbForge Studio for mysql后,需要安装.net 4才...转载 2019-07-03 11:10:44 · 11194 阅读 · 0 评论 -
Mybatis mysql模糊查询(CONCAT多个字段)及bug
先看下如下xml SELECT t.id, t.mobile,, t.account_name FROM t_account t WHERE 1=1 <if test="keyWord !=null and keyWord !=''"> and CONCAT(t.id,t.mobile,t.account_n...原创 2019-07-09 21:44:28 · 7437 阅读 · 8 评论 -
查看mysql数据库引擎
查看mysql数据库引擎 show variables like '%storage_engine%';原创 2019-08-01 18:58:09 · 233 阅读 · 0 评论 -
MYSQL性能优化的最佳20+条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1. 为查询缓...转载 2019-08-01 19:59:51 · 136 阅读 · 0 评论 -
MYSQL 锁表解锁查看
1.锁表:锁单个表:LOCK TABLES tablename read/write锁多个表:LOCK TABLES tablename1 read/write,tablename2 read/write当read时,当前会话:可以查询,更新会报错;其他会话:可以查询,更新会进入等待;当wirte时,当前会话:可以读写;其他会话:读写会进入等待状态;当前会话锁定了表A,没有锁表B...翻译 2019-08-02 00:18:39 · 469 阅读 · 0 评论 -
mysql小练习
mysql小练习,求助,设教学数据库Education有三个关系: 设教学数据库Education有三个关系: 学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学系关系SC(SNO,CNO,GRADE);课程关系C(CNO,CNAME,CDEPT,TNAME) 查询问题: (1)检索计算机系的全体学生的学号,姓名和性别; (2)检索学习课程号为C2的学生学号与姓名; (3...转载 2018-09-08 23:20:28 · 1091 阅读 · 1 评论