MySQL
文章平均质量分 70
MySQL应用笔记.
天然玩家
请大家不要再订阅了!!!如遇到专栏里可以解决您问题的文章,您可以私信我。为了保护之前订阅用户的权益,专栏内容依旧保留,但是不会再更新内容了。
展开
-
实战讲解MyBatis缓存:一级缓存和二级缓存(图+文+源码)
(1)MyBatis一级缓存生效的条件为同一个SqlSession;二级缓存生效的条件为同一个namespace;(2)一级缓存生效需要使用@Transactional注解,保证同一事务中的操作在同一个SqlSesion中,因为,MyBatis在设计时,不在同一事务中SqlSession会强制自动提交(commit),每次操作都会新建SqlSession,这样就无法保证所有操作在同一个SqlSession中,破坏了L1级缓存的生效条件;(3)二级缓存生效的范围是同一份映射文件,即同一个namespace原创 2022-11-23 23:23:50 · 797 阅读 · 0 评论 -
确诊了!是Druid1.1.20的锅,查询无法映射LocalDateTime类型(带源码解析及解决方案)
(1)MyBatis3.5.5,Druid1.1.20查询时无法映射LocalDateTime类型,是Druid的问题,该版本的Druid方法getObject直接抛出异常,导致映射失败;(2)MyBatis3.5.5已经具备处理LocalDateTime数据类型的能力,通过getNullableResult即可处理;(3)解决无法映射LocalDateTime问题常用的方案:提高Druid版本为1.1.21;使用String替换LocalDateTime。.........原创 2022-08-10 17:32:48 · 1016 阅读 · 0 评论 -
MySQL performance schema性能分析实战
(1)Performance Schema用于监控SQL执行,如各阶段耗时、阶段的锁等待、索引访问、物理I/O和逻辑I/O等;(2)Performance Schema中的表是内存表,随MySQL服务器启动载入数据,关闭清除数据,资源消耗少,配置即时生效;(3)Performance Schema的异常不影响SQL的正常执行;(4)使用Performance Schema需要配置采集器和消费者,具体要开启:events_statements_history_long等。.........原创 2022-08-09 16:46:59 · 1062 阅读 · 0 评论 -
详解MySQL行转列、数据汇总、拼接和相关测试
(1)行转列两种方案:CASE和IF;(2)汇总两种方案:SUM和WITH ROLLUP;(3)拼接:GROUP_CONCAT。原创 2022-06-20 10:30:32 · 1011 阅读 · 0 评论 -
Docker部署MySQL
(1)必须将容器的数据库挂载到宿主机目录;(2)宿主机添加my.cnf配置文件;(3)进入MySQL控制台需通过docker compose命令:docker-compose exec mysql bash(4)停止当前容器时,选择stop仅停止,选择down会删除当前镜像。...原创 2021-01-24 00:20:46 · 7839 阅读 · 0 评论 -
详解springboot数据源配置参数(包括Druid)
SpringBoot数据源参数解析:原生参数和Druid参数。Durid的出现,可配置数据源的高级参数,如失败重试、最小/大空闲连接数、空闲连接回收、预编译(PSCache)等,提高性能和稳定性。原创 2022-06-08 16:26:04 · 4963 阅读 · 0 评论 -
MySQL基础系列:date、datetime、timestamp
MySQL支持3种类型的时间DATE、DATETIME和TIMESTAMP。原创 2021-12-29 19:59:51 · 205 阅读 · 0 评论 -
MySQL基础:多线程插入数据
1 应用场景向MySQL数据库InnoDB引擎:插入10万条数据。2 单线程一个线程插入10万条数据。package com.monkey.java_study.thread;import com.monkey.java_study.common.config.ThreadPoolConfig;import com.monkey.java_study.database.DatabaseConnectionFactory;import com.monkey.java_study.databas原创 2021-11-29 19:36:37 · 9472 阅读 · 2 评论 -
MySQL基础系列:LEFT JOIN查询差集
1 表1.1 user1.2 sys_user2 查询2.1 LEFT JOIN通过左连接合并数据,A LEFT JOIN B,A表中存在的数据,B表中不存在的数据使用NULL填充,查询语句如下:SELECT t1.id,t2.idFROM db_monkey_run.tb_user t1 LEFT JOIN (SELECT id FROM db_monkey_run.tb_sys_user) t2 ON原创 2021-11-08 22:58:48 · 1878 阅读 · 0 评论 -
MySQL原生查询:查不到数据是如何判断的?
1 原生查询MySQL原生查询,结果存放在集合java.sql.ResultSet中。当查询的查询的数据不存在时,ResultSet集合为空。不会走ResultSet.next逻辑。封装的数据为空。因此,使用原生查询时,判断是否查到数据,根据封装的对象是否为空即可。如,将ResultSet遍历的结果存储在Map中,判断Map是否为空即可。2 测试样例package com.monkey.java_study.functiontest;import com.monkey.java_stud原创 2021-10-25 09:57:32 · 2100 阅读 · 0 评论 -
MySQL操作:分支选择switch-case
1 原始数据2 方式1:case column-- switch-caseSELECT id, user_id, username, (CASE status WHEN 0 THEN '正常' WHEN 1 THEN '删除' ELSE '无效' END) status_descFROM db_monkey_run.tb_sys_user;3 方式2:when column-- switch-c原创 2021-08-20 19:20:50 · 7332 阅读 · 0 评论 -
MySQL新增数据的几种方式
1 两个表:全量新增表A的数据全部添加到表B,重复的键进行更新,使用语句:DUPLICATE KEY UPDATE。-- 表A数据插入到表B全量数据:重复的key更新INSERT INTO `db_monkey_run`.`tb_sys_user_cp` (id, user_id, username, password, sex , status, created_time, updated_time)SELECT id, user_id, username, password, sex , s原创 2021-08-20 18:45:04 · 6090 阅读 · 0 评论 -
MySQL基础系列:最大连接数
1 MySQL5.7.342 MySQL8.0.25原创 2021-06-07 18:40:19 · 156 阅读 · 0 评论 -
Ubuntu20.04部署MySQL8.0.25
1 安装MySQL# 服务端,运行mysql服务,代码实现数据存取sudo apt-get install mysql-server# 客户端,访问mysql数据库,终端用户访问suso apt-get install mysql-client原创 2021-06-01 17:27:44 · 867 阅读 · 0 评论 -
MySQL基础系列:关键字及关键字执行过程
1 MySQL查询过程MySQL查询过程如图1所示。图1 MySQL查询过程#原创 2021-04-13 16:25:41 · 436 阅读 · 0 评论 -
MySQL基础系列:数据查询过程
1 MySQL查询过程MySQL查询过程如图1所示。图1 MySQL查询过程# 2 查询过程分析## 2.1 连接器客户端与服务端通信通过连接器进行。连接器验证当前连接用户的用户名和密码,赋予相应的权限。## 2.2 缓存查询MySQL5.7及以前版本,数据查询时先从缓存查询,命中则直接返回数据,未命中,则继续执行下一步,走到解析器。## 2.3 解析器解析器用语言解析SQL语句,对关键词词进行提取、解析,组成解析树,关键词包括(执行顺序):from>join>on&g原创 2021-03-25 22:49:55 · 591 阅读 · 0 评论 -
MySQL基础系列:执行计划
1 执行计划执行计划命令:explain sql即在通用的sql前添加explian。执行计划参数:图1.1 执行计划参数执行计划参数如表1.1所示。序号参数描述1id查询序列号,标识执行的顺序2select_type查询类型,普通查询、联合查询和子查询等3table查询的表名4partitions查询涉及的分区5type执行计划类型6possible_keys查询过程可能用到的索引7key实际使用的索引原创 2021-03-14 22:41:24 · 193 阅读 · 0 评论 -
MySQL基础系列:锁
计算机协调多个进程或线程并发访问计算机资源的机制,锁保证数据并发访问的一致性,有效性,锁冲突也是影响数据库并发访问性能的一个重要因素,锁是MySQL在服务器层和存储引擎层的并发控制。加锁是消耗资源的,锁的相关操作:获得锁,检测锁是否解除,释放锁。原创 2020-12-13 23:25:41 · 335 阅读 · 1 评论 -
MySQL基础系列:时间相关查询
1 年度数据查询1.0 本年12个月SELECTusername,sex,address,created_timeFROMbook.user_informationWHEREYEAR ( created_time ) = YEAR ( now( ) );1.2 去年12个月SELECTusername,sex,address,created_timeFROMbook.user_informationWHEREYEAR ( created_time ) = YEAR (原创 2020-11-20 00:41:41 · 231 阅读 · 0 评论 -
MySQL及MyBatis问题汇总
1 外键外键必须是另一个表的主键或唯一键.int camera_id unique,int camera_infos auto_increment【参考文献】[1]https://www.cnblogs.com/liushui-sky/p/8830936.html[][]原创 2020-07-17 15:50:02 · 466 阅读 · 0 评论 -
MySQL基础系列:数据统计sum,count
1 sum2 count3 found_rows4 group by功能数据分组,细分两个分类:单个分组字段,;多个分组字段,数据分组.4.1 单字段序号分组字段4.2 多字段序号[参考文献][][][]原创 2020-06-16 18:56:29 · 5129 阅读 · 0 评论 -
MySQL系列:索引
MySQL索引是一种数据结构,旨在提高数据查询速度。原创 2020-05-30 15:38:16 · 3290 阅读 · 2 评论 -
MySQL系列:引擎
1 InnoDB2 MyISAM3 InnoDB和MyISAM比较序号InnoDBMyISAM备注1事务支持不支持2外键支持不支持3索引聚簇索引非聚簇索引(辅助索引)4数据行数不保存具体行数保存整体行数5锁粒度最小为行级锁最小为表级锁6删除表按行删除先drop表,后重建表7压缩性难压缩可以被压缩8跨平台性跨平台可以拷贝可直接使用不可以直接拷贝使用【参考文献】[1]https://原创 2020-05-28 19:29:49 · 3274 阅读 · 0 评论 -
Ubuntu实现本地Workbench连接服务器MySQL数据库
1 环境 Ubuntu18.04 mysql5.7.23 Workbench2 配置及连接测试2.1 配置连接参数标题栏依次点击:Database↦\mapsto↦Manage Connections进入配置:图2.1 配置参数2.2 配置认证参数图2.2 配置通信参数2.2 连接测试Test Connection图2.2 连接测试连接成功.3 连接服务器...原创 2019-03-03 17:47:27 · 1739 阅读 · 0 评论 -
Ubuntu环境C语言连接MySQL数据库
1 环境部署原创 2019-07-14 19:44:34 · 318 阅读 · 0 评论 -
数据库基础系列:范式&MySQL数据格式
1 范式2 第一范式3 第二范式原创 2020-03-30 16:24:22 · 324 阅读 · 0 评论 -
MySQL问题总结(一)
1 删除包含外键的数据库异常异常Cannot delete or update a parent row: a foreign key constraint fails原因表有外键关联方案取消外键约束,删除表,恢复外键约束# 取消外键约束set foreign_key_checks=0;# 删除表drop table infos;# 恢复外键约束set foreign_...原创 2020-02-23 22:40:59 · 288 阅读 · 0 评论 -
MySQL数据库密码配置
1软件环境CentOS7、MySQL5.8及以下2登录问题(1) ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)(2) ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using p...原创 2018-08-08 16:39:25 · 3651 阅读 · 0 评论 -
Ubuntu部署MySQL数据库
Ubuntu部署1.1 安装sudo apt-get install mysql-serversuso apt-get install mysql-client1.2 mysql状态运行状态sudo netstat -tap | grep mysql# 正在运行tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN ...原创 2018-10-29 14:20:53 · 1419 阅读 · 2 评论 -
MySQL常用命令手册
1 登录&登出1.0 登录cmdmysql -u root -p resultmysql -u root -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 75Server version: 5.7.25-0...原创 2019-03-01 16:02:56 · 250 阅读 · 0 评论 -
MySQL基本操作:增删改查
登录数据库mysql -u username -p password1 增创建数据库mysql>create testDatabase创建数据表mysql>use testDatabasemysql>create table testTables增加表字段2 删删除数据库删原创 2019-09-05 18:44:32 · 3460 阅读 · 0 评论 -
MySQL系列:数据存储及日志文件
1 环境 Ubuntu18.04 mysql5.7.272 存储文件安装mysql参考博客:Ubuntu部署MySQL数据库2.1 文件位置默认mysql安装位置/etc/mysql2.2 文件类型原创 2019-09-06 08:10:24 · 550 阅读 · 0 评论 -
MySQL系列:事务
1 事务一次完整的数据操作(开始操作+提交操作).2 特性2.1 事务特性原子性Atomicity一致性Consistency隔离性Isolation持久性Durability2.2 特性描述2.2.1 原子性不可分割性.一荣俱荣,一损俱损.事务开始后的所有操作,要么全部完成,要么全部失败,即提交数据操作,或不提交数据操作(增删改查).2.2.2 一致性事务开始前,结束...原创 2019-10-06 19:59:03 · 3250 阅读 · 0 评论 -
MySQL系列:事务隔离级别
1 隔离级别序号隔离级别1读未提交(read-uncommitted)2读已提交(read-committed)3可重复读(repeatable-read)4串行化(serializable)2 解析【参考文献】[]https://www.cnblogs.com/huanongying/p/7021555.html[]http://ww...原创 2019-10-15 19:09:15 · 213 阅读 · 0 评论 -
MySQL系列:ES数据同步
1 环境 Ubuntu18.04 MySQL5.7.27 JDK1.8 ElasticSearch6.3.0 canal1.1.4 zookeeper2 mysql数据同步至ESbinlog使用ROW存储模式,保证记录每条数据的变化.2.1 增量同步实时同步,工具canal,logstash_input_jdbc,maxwell.2.1.0 下载canal传送门:htt...原创 2019-09-06 20:23:09 · 3721 阅读 · 0 评论