【Mysql集萃】
文章平均质量分 75
MySQL日常使用经验总结
青山师
编码、架构、程序人生;此博客输出内容永久免费,长期分享JAVA开发技术
展开
-
InnoDB如何实现事务、undo log、redo log、binlog
当一个事务开始后,会在内存中为其分配一块undo log,并在该事务执行修改数据表之前将相关数据先拷贝到undo log中。同时,InnoDB还利用了多版本并发控制(MVCC)来实现数据的隔离性。主从复制时,从库会读取主库的binlog事件来重放数据的更改,实现数据一致性。redo log是指数据库系统执行修改操作时所记录的日志,它的主要作用是确保当数据库崩溃时不会丢失数据更新操作。InnoDB是MySQL的默认存储引擎,它使用多版本并发控制(MVCC)和锁机制来实现事务。原创 2023-04-26 15:31:43 · 818 阅读 · 0 评论 -
B树、B+树的区别及MySQL为何选择B+树
B树和B+树都是一种多路搜索树,常用于数据库和文件系统中进行索引操作。在介绍B树和B+树的区别之前,先来了解一下它们的定义。原创 2023-04-26 14:44:37 · 1092 阅读 · 0 评论 -
MySQL存储引擎InnoDB、MyISAM和MEMORY介绍详解和区别
MySQL是目前使用最广泛的关系型数据库,而存储引擎是MySQL中一个非常重要的概念。存储引擎决定了MySQL如何存储和处理数据,对于系统性能和功能的影响非常大。本文将对MySQL常见的几种存储引擎进行介绍和比较,帮助读者更好地选择适合自己应用场景的存储引擎。不同的存储引擎有不同的特点和适用场景,我们可以根据实际需求选择最合适的存储引擎。一般来说,应该优先考虑使用InnoDB存储引擎,因为它支持事务、行级锁定等高级功能,能够保证数据的一致性和可靠性。原创 2023-04-23 15:16:29 · 1236 阅读 · 0 评论 -
MySQL索引B+树、执行计划explain、索引覆盖最左匹配、慢查询问题
B+树以(m, M)-B+树的形式出现,其中m和M的含义与B树相同,但内部节点包含的关键字数目比B树更多,通常是M/2到M。B树是一种平衡多路查找树,相比于二叉查找树,它允许一个节点存在多个子节点,因此可以减少I/O操作的次数,提高数据的访问效率。B树中的每个节点都可能存储关键字,因此,除了叶子节点,B树的每个节点都可以作为查询结果返回。B树的非叶子节点存储关键字以及指向子节点的指针,而B+树中的非叶子节点只存储关键字和对应子节点的指针,即只存储索引信息,这样可以存储更多的索引信息。原创 2023-04-20 20:35:06 · 675 阅读 · 0 评论 -
MySQL执行计划详解
执行计划是MySQL查询优化器生成的一组指令,用于执行SQL语句。在执行SQL语句时,MySQL会对SQL进行解析、优化、执行三个步骤。在优化阶段,MySQL查询优化器会生成一个执行计划,该计划被称为查询计划或执行计划。执行计划告诉MySQL执行SQL语句的具体步骤,包括表的连接方式、扫描方式、过滤条件等。执行计划是指MySQL根据用户请求所生成的一份查询计划,它决定了MySQL在执行SQL语句时所采取的操作方式,包括表的连接方式、索引的选择、访问方法等,进而影响着查询语句的执行效率。原创 2023-04-19 23:25:05 · 3246 阅读 · 0 评论 -
MySQL去除字段的空白符
mysql 去除空白符:update 表名 set 字段 = TRIM(字段);mysql 去除 特殊字符(制表符、换行符、回车)导致的空白:update 表名 set 字段 = replace(replace(replace(字段,char(9),''),char(10),''),char(13),'');原创 2021-03-13 17:48:57 · 3510 阅读 · 0 评论 -
com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43)
在IDEA中部署web项目到tomcat测试后, 关闭tomcat时可能遇到以下警告信息:com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43)完整信息如下:警告 [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web app原创 2020-05-08 21:06:52 · 19363 阅读 · 5 评论 -
mysql密码过期设置 sqlyog登录 password expired
MySQL5.7修改root账户密码之后,使用SqlYog登录时提示密码已经过期:需要设置一下让密码永不过期即可:登录进入mysqlmysql -uroot -pEnter password: *******修改密码(这一条必须执行,不然第三条提示有问题)set password= password(‘root’);设置永不过期alter user ‘roo...原创 2020-04-27 19:02:39 · 1293 阅读 · 0 评论 -
MySQL5.7修改root账户密码
安装MySQL5.7初始化失败在mysql install命令运行成功后,接着运行mysqld --initialize命令完成数据库初始化功能,这是遇到了error: Found option without preceding group in config file: /data/3307/my.cnf at line: 1原因:my.ini文件格式是utf-8解决办法,my.ini文...原创 2020-04-27 18:56:13 · 2655 阅读 · 0 评论 -
CentOS7安装MariaDB的流程步骤
安装前需要彻底清除你的服务器计算机上原来安装过的mysql、maraidb的文件,不然会出现各种问题。====================================================- 执行安装命令: yum -y install mariadb* - 注意事项 *mariadb 错误 [Errno 5] [Errno 12] Cannot allocat...原创 2020-03-15 19:49:45 · 2099 阅读 · 0 评论 -
SQLYog常用快捷键
SQLYog常用快捷键更多资源链接 http://blog.csdn.net/zixiao217Ctrl+M 创建一个新的连接 Ctrl+N 使用当前设置新建连接 Ctrl+F4 断开当前连接对象浏览器 F5 刷新对象浏览器(默认) Ctrl+B 设置焦点于对象浏览器SQL 窗口 Ctrl+T 新建查询编辑器 Ctrl+E 设置焦点于 SQL 窗口 Ctrl原创 2016-09-23 11:40:50 · 14990 阅读 · 4 评论 -
Linux的mysql允许外接远程访问
Linux的mysql允许外接远程访问登录到mysql中(可以使用root账号或者其他拥有权限分配的账号。)设置创建远程账号(账号为root、密码也被identified设置为root)create user 'zhm'@'%' identified by 'zhm123456';授权grant all on *.* to 'zhm'@'%' with grant opt...原创 2019-12-24 14:30:37 · 474 阅读 · 0 评论 -
java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more
mysql8版本连接错误问题汇总:问题一java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via t...原创 2019-11-06 09:21:44 · 324 阅读 · 0 评论 -
jdbc如何连接MySQL8版本
驱动包请到: https://mvnrepository.com/artifact/mysql/mysql-connector-java 下载适合自己的版本注意事项:以下是jdbc配置,驱动包不再是 com.mysql.jdbc.Driver 类了。连接url需要制定时区,时区可以到驱动包的配置文件里找:lib/mysql-connector-java-8.0.11.jar!/co...原创 2019-11-05 20:31:34 · 610 阅读 · 0 评论 -
查看外键名称查看数据库外键名字
我们要进行删除外键时,需要知道外键的名字,那么如何查看数据库外键呢?有2种方式查看: 1.过查看表的方式查看外键名字; 2.通过mysql自带的系统表查看外键。更多精彩请访问本文源地址: https://blog.csdn.net/zixiao217先来看一下创建外键的方式:创建外键的方式更多精彩请访问本文源地址: https://blog.csdn.net/zixiao217方式一:...原创 2019-10-29 13:00:34 · 12633 阅读 · 1 评论 -
最全的MySQL数据库函数:字符串函数、时间日期函数、数值函数详解
文章目录最常用最实用的MySQL函数详解高山仰止一 控制流程函数环境准备知识点-case函数1.高山2.演绎3.攀登3.1 case函数概述3.2 简单case函数【了解】3.2.1 语法3.1.2 示例3.3 case搜索函数【掌握】3.3.1 语法3.3.2 示例4. 回望知识点-if相关函数1.高山2.演绎3.攀登3.1 if函数3.1.1 语法3.1.2 示例3.2 ifnull函数3.2...原创 2019-10-23 15:26:37 · 607 阅读 · 0 评论 -
MySQL存储过程、函数、视图、触发器、索引和锁的基本知识
MySQL存储过程、函数、视图、触发器、索引和锁的基本知识更多精彩请访问本文源地址: https://blog.csdn.net/zixiao217高山仰止 了解视图的使用 了解存储过程、函数的创建和使用 了解触发器的创建和使用 了解MySQL常见的存储引擎和它们的特点 掌握创建索引的方式 理解MySQL锁机制、死锁的概念第一章-视图环境准备-- 一个放款流水表CRE...原创 2019-10-23 15:15:09 · 2603 阅读 · 1 评论 -
【MySQL基础】Mysql获得当前日期的前一个月的最后一天
Mysql获得当前日期的前一个月的最后一天 场景:一家P2P公司的财务专员请求开发人员(或DBA)统计历史借款用户数量,她查看的时间是今天,想要的数据是这个月以前(不含这个月)的用户数。 难题:“这个月”是动态的,可能是2016年7月、2017年3月等等。我们就需要写一个动态SQL给她以后就让她自己执行就OK了。 思路:如果我们可以找到一个条件时间,然后用户借款时间小于这个条件时间的所有数据原创 2016-07-14 14:14:37 · 3953 阅读 · 0 评论 -
【MySQL基础】mysql 中id相同的数据拼接GROUP_CONCAT分组连接函数
如下所示数据组成,我想按姓名分组组成结果形式:oyy 23#24#25#26.mysql> select * from student; +—-+——————+——+ | id | name | age | +—-+——————+——+ | 1 | C34A89EC57276F7C | 33 | | 2 | 315134Y | 75原创 2016-09-20 13:27:34 · 6042 阅读 · 1 评论 -
【MySQL基础】MySql如何根据输入的id获得树形结构的子节点列表:使用自连+SUBSTRING_INDEX函数
有如下树形结构:RT-ST-SST-SSST共四层,RT是根节点,往后依次是一代子节点,二代子节点,三代子节点。 如何根据当前节点的id,获得其子节点呢?这是一个SQL问题。加入传入的id为1(即根节点),使用自连+SUBSTRING_INDEX函数得到其子节点: (本文章分享在CSDN平台,更多精彩请阅读 东陆之滇的csdn博客:http://blog.csdn.net/zixiao217)示原创 2016-11-15 19:49:27 · 1755 阅读 · 0 评论 -
【MySQL基础】Mysql截取字符串split函数的实现以及使用范例
日前,统计数据的时候发现需要字符串分隔,MySql中并没有类似Java的split函数,但是我们可以利用length()函数、replace() 2个函数创建一个自定义的split函数,sql很简单: (本文章分享在CSDN平台,更多精彩请阅读 东陆之滇的csdn博客:http://blog.csdn.net/zixiao217) split函数:CREATE FUNCTION `split`(原创 2016-11-14 16:24:55 · 6415 阅读 · 0 评论 -
【MySQL基础】mysql如何实现中文按拼音排序查询
mysql支持中文汉字排序的实现方法在查询的时候,经常用到排序,英文的排序自然好说,但是在线上特定场景环境中,可能需要对中文进行排序,比如用户的姓名、地址等等。在mysql中如何对中文排序呢?我们可以使用ORDER BY CONVERT(列名 USING 字符编码集)函数即可将中文列名按拼音顺序进行排序。(本文章分享在CSDN平台,更多精彩请阅读 东陆之滇的csdn博客:http://blog.cs原创 2016-11-24 13:01:31 · 903 阅读 · 0 评论 -
【MySQL基础】mysql 导入文件中的数据到数据库表
通过以下命令可以导入指定文件格式的数据到mysql表中:LOAD DATA LOCAL INFILE '/tmp/002.txt' INTO TABLE agt_limit_flow CHARACTER SET utf8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\n'(name,age,addre原创 2017-06-23 19:50:55 · 2230 阅读 · 0 评论 -
【MySQL基础】mysql 多表连接进行update操作
使用关联并修改的SQL如下:将云南省姓名和广东省姓名相同的人并且叫周一一的收入调整为一致(美好…)UPDATE province_yunnan_salary s1JOIN province_yunnan_salary s2ON s1.user_name= s2.user_nameSET s1.salary= s2.salaryWHERE s1.user_name = '周一一'原创 2017-06-23 20:05:14 · 1510 阅读 · 0 评论 -
【MySQL基础】 mysql强制使用指定索引查询
mysql强制指定索引查询语法: select * from table_name force index (index_name) where conditions;#########mysql强制使用指定索引查询SELECT * FROM `yrd_pay_flow` FORCE INDEX(`idx_trxn_date`) WHERE trxn_date > '2017-08-1原创 2017-08-14 17:22:10 · 21666 阅读 · 2 评论 -
【MySQL基础】mysql8.0 Authentication plugin 'caching_sha2_password' cannot be loaded
最近下载新的MySQL8.0 来使用的时候, 通过sqlyog、或者程序中连接数据库时,提示:Authentication plugin 'caching_sha2_password' cannot be loaded 的错误,经查看发现,8.0改变了 身份验证插件 , 打开 my.ini (或者my.cofg) 可以看到变更了 5.7及其以前的方式: mysql_native_passwor...原创 2018-05-01 14:27:47 · 47820 阅读 · 12 评论 -
【MySQL高级】MySQL 传输数据过大 max_allowed_packet 参数的设置
MySQL max_allowed_packet 设置以字节发送给服务器的最大数据包大小. (默认: 1MB),数据库变更需要:大的插入和更新可能会被max_allowed_packet 参数限制,导致失败。可以修改mysql服务器的配置(my.ini 或者 my.cnf 文件)参数:max_allowed_packet = 30M 来解决,缺陷是该方法需要重启mysql服务器。...原创 2018-04-28 15:50:50 · 13333 阅读 · 0 评论 -
【MySQL基础】Mysql 复制表结构包括索引
业务系统数据大增时,经常会使用到分表,我们对于日志表按月来分, 若原有日志表:trxn_detail_log_201806 , 现在像创建以后每个月的表,可以使用以下语句复制表数据。CREATE TABLE 表名 LIKE SELECT * FROM 模板表名;CREATE TABLE trxn_detail_log_201807 LIKE SELECT * FRO...原创 2018-06-04 09:17:24 · 4604 阅读 · 0 评论 -
【MySQL高级技术】通过案例精解MySQL数据库InnoDB读写锁、事务隔离级别
Mysql 锁解读、事务隔离级别锁性能分:乐观(比如使用version字段比对,无需等待)、悲观(需要等待其他事务)读锁(共享锁)、写锁(排他锁) 均属于悲观锁粒度分:行级锁、表级锁锁示例对表加读锁:lock table tableName read所有session可以读;但是当前session 更新插入报错,其他session 更新插入等待。比如: 在数据迁移时,加读锁,防...原创 2018-10-15 22:18:32 · 878 阅读 · 0 评论 -
InnoDB存储引擎官方文档翻译整理(一)目录
InnoDB存储引擎知识要点 InnoDB 简介 InnoDB 和 ACID 模型 InnoDB 多版本 InnoDB 架构 InnoDB 在内存的结构 InnoDB 在磁盘的结构 InnoDB 锁和事务模型 InnoDB 配置 InnoDB 表和页压缩 InnoDB 行格式 InnoDB 磁盘I/O和文件空间管理 InnoDB 和在线DDL InnoDB 启动操作和...翻译 2019-09-27 18:12:20 · 373 阅读 · 0 评论 -
InnoDB存储引擎官方文档翻译整理(二)InnoDB简介 和 ACID 模型
InnoDB存储引擎知识要点 ReadMeInnoDB 简介 ReadMeInnoDB 和 ACID 模型 InnoDB 多版本 InnoDB 架构 InnoDB 在内存的结构 InnoDB 在磁盘的结构 InnoDB 锁和事务模型 InnoDB 配置 InnoDB 表和页压缩 InnoDB 行格式 InnoDB 磁盘I/O和文件空间管理 InnoDB 和在线DDL ...翻译 2019-09-27 18:16:04 · 544 阅读 · 0 评论 -
【MySQL基础】Mysql获得当前日期的所在月的第一天
Mysql获得当前日期的所在月的第一天Step1:得到当前时间(天) curdate():该函数返回的日期形式:2016-07-14select CURDATE()result: 2016-07-14Step2:得到当前日期在本月的第几天 day(arg):该函数返回时间参数arg在本月是第多少天day(curdate()) = 14select day(CURDATE())result: 1原创 2016-07-14 13:37:34 · 4215 阅读 · 0 评论