姜源Jerry
万物伊始,效率本源。大道至简,代码之禅。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深究数据库E-R模型设计
数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库设计概述图:数据库是信息系统的核心和基础,它把信息系统中大量的数据按一定的模型组织起来,并提供存储、维护、检索数据的功能,最终使信息系统可以方便、及时、准确地从数据库中获得所需的信息。即数据库的设计目标是:为用户和各种应用系统提供一个信息基础设施和高效率的运行环境,这里的高效率代表的是冗余少、易维护和便于使用。原创 2023-06-10 23:32:40 · 1046 阅读 · 4 评论 -
MySQL主从复制+读写分离详细方案
读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库mysql的主从复制原理和读写分离的原理;MySQL有四种同步方式:异步复制(Async Replication)、同步复制(sync Replication)、半同步复制(Async Replication)、增强半同步复制(lossless Semi-Sync Replication);原创 2023-03-01 10:51:09 · 950 阅读 · 0 评论 -
MySQL慢查询日志使用
mysql慢日志查询,不要被网上一些关于mysql慢查询的相关文章所迷惑——他们对此参数的解释是(如果设置了,所有没有使用索引的查询也将被记录),我看了就奇怪了,这不和参数log-queries-not-using-indexes的功能是一样的么,于是百度之,可笑的是,即然有很多文章都是类似描述,这些只知道copy的站长或那些只顾转载的朋友,你要我怎么说你们呢。通过查看慢查询日志可以发现,很乱,数据量大的时候,可能一天会产生几个G的日志,根本没有办法去清晰明了的分析。所以,这里,采用工具进行分析。原创 2023-03-01 10:49:42 · 682 阅读 · 0 评论 -
MySQL解析json字段以及遍历json字段
MySQL解析json字段以及遍历json字段MySQL 5.7版本以后支持json格式的字段类型定义、存储和使用,最近做BI开发,开发把所需数据用JSON的形式存储在字段中,本次记录下MySQL解析JSON。官方参考:https://dev.mysql.com/doc/refman/8.0/en/json.html一般来说,主要是提取json字段的值,所以update就不写了,提取select json使用的参数是:JSON_EXTRACTJSON_EXTRACT参数使用方式是:JSON_EXT原创 2021-09-11 17:25:21 · 7573 阅读 · 0 评论 -
MySQL EXPLAIN查询计划详解
MySQL EXPLAIN查询计划详解1. EXPLAIN简介2. 执行计划各字段含义2.1 id2.2 type2.3 possible_keys 和 key2.4 key_len2.5 rows2.6 Extra1. EXPLAIN简介使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 通过explain我们可以获得以下信息:表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表原创 2020-12-26 18:32:17 · 358 阅读 · 0 评论 -
18条效率至少提高3倍的MySQL技巧
1、EXPLAIN做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。type列,连接类型。一个好的SQL语句至少要达到range级别。杜绝出现all级别。key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式。key_len列,索引长度。rows列,扫描行数。该值是个预估值。extra列,详细说明。注意,常见的不太友好的值,如下:Using filesort,Using temporary2、SQL语句中IN包含的值不应过多MySQL对于IN做了相应的优化原创 2020-09-25 16:00:01 · 558 阅读 · 0 评论 -
IDEA 中自动保存的 database console 控制台内容记录
用过了 SQLyog 以及 Navicat 对字段的自动补齐还是不够好。所以坚持使用 IDEA 自带的 Database 数据库客户端,自带控制台 console。语句补全:字段补全:但需要将 临时的 console 作为一个 sql记事本 的 客户端来用,所以要找到 IDEA 存储它的位置,不至于丢失掉以前的记录。花了点功夫找到它!藏身之处:...原创 2020-09-23 09:55:20 · 7734 阅读 · 9 评论 -
sql语句里添加一列自然序号
SELECT @rownum:=@rownum+1 AS rownum, a.*FROM (SELECT @rownum:=0) r, a;原创 2020-09-15 11:08:03 · 3662 阅读 · 0 评论 -
Redis 集群搭建详细步骤及整合Spring
Redis 集群搭建详细步骤及整合Spring1. Redis 集群搭建1.1 redis-cluster架构图1.2 redis-cluster投票:容错1.3 架构细节1.4 Redis集群的搭建-11.4 Redis集群的搭建-22. Jedis2.1 连接单机版2.2 连接池连接单机版2.3 连接集群版3. 封装和整合spring3.1 接口定义3.2 单机版实现类3.3 单机版 Spring 配置3.4 集群版实现类3.5 集群版 Spring 配置官网教程:https://www.redis原创 2020-07-09 00:42:52 · 2632 阅读 · 0 评论 -
Redis 主从复制操作和哨兵模式配置
Redis 主从复制操作和哨兵模式配置1. Redis 主从复制1.1 配置步骤1.2 主从复制原理2. Redis 哨兵模式2.1 高可用2.1 配置步骤2.3 哨兵模式优缺点官网教程:https://www.redis.net.cn/tutorial/3515.html1. Redis 主从复制主从复制是指将一台 Redis 服务器的数据,复制到其它的 Redis 服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台原创 2020-07-09 00:40:57 · 1537 阅读 · 0 评论 -
Redis 事务+订阅+持久化方式详解
Redis 事务+订阅+持久化方式详解1. Redis 事务1.1 事务命令1.2 Redis 事务特性2. Redis 持久化2.1 RDB2.2 AOF2.3 RDB优缺2.4 AOF优缺3. Redis 订阅官网教程:https://www.redis.net.cn/tutorial/3515.html1. Redis 事务Redis 中的事务和 MySQL 中的事务有本质的区别,Redis中的事务是一个单独的隔离操作,事务中所有的命令都会序列化,按照顺序执行,事务在执行的过程中,不会被其他客原创 2020-07-09 00:39:24 · 783 阅读 · 0 评论 -
MyBatis 分页插件 PageHelper 使用
MyBatis 分页插件 PageHelper 使用1. 概念2. 访问与下载3. 开发步骤3.1 引入依赖3.2 配置MyBatis-config.xml3.3 PageHelper应用方式4. PageInfo对象4.1 PageInfo应用方式4.2 注意事项5. Maven 项目添加分页5.1 导入依赖5.2 配置分页插件(2选1)5.3 在 controller 中添加方法4. 前端分页数据5. 测试1. 概念PageHelper 是适用于 MyBatis 框架的一个分页插件,使用方式极为便原创 2020-07-09 00:36:28 · 664 阅读 · 0 评论 -
MyBatis 动态SQL使用和缓存详解
MyBatis 动态SQL使用和缓存详解1. 动态SQL【★】1.1 < sql >1.2 < where >1.3 < set >1.4 < trim >1.5 < foreach >2. 缓存(Cache)【★】2.1 一级缓存2.2 二级缓存2.2.1 开启全局缓存(二级缓存)2.2.2 指定Mapper缓存2.2.3 缓存清空并重新缓存1. 动态SQL【★】MyBatis的映射文件中支持在基础SQL上添加一些逻辑操作,并动态拼接成完整原创 2020-07-09 00:35:28 · 1661 阅读 · 0 评论 -
MyBatis ORM映射和多表连接查询
MyBatis ORM映射和多表连接查询1. ORM映射【★】1.1 MyBatis自动ORM失效1.2 一:列的别名1.3 二:结果映射2. MyBatis处理关联关系-多表连接【★】2.1 OneToOne2.2 OneToMany2.3 ManyToMany2.4 关系总结1. ORM映射【★】1.1 MyBatis自动ORM失效MyBatis 只能自动维护库表列名与属性名相同时的一一对应关系,二者不同时,无法自动ORM。自动ORM失效1.2 一:列的别名在SQL中原创 2020-07-09 00:34:13 · 1131 阅读 · 1 评论 -
redis.conf配置及哨兵sentinel.conf配置详解
Redis配置及哨兵Sentinel配置详解一、redis.conf 配置项说明如下:Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定pidfile /var/run/redis.pid指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为63原创 2020-07-08 16:05:15 · 2956 阅读 · 0 评论 -
PowerDesigner数据库建模设计和生成SQL脚本
PowerDesigner数据库建模设计和生成SQL脚本1. 概述2. 概念数据模型2.1 概念数据模型创建2.2 E-R 实体-联系图3. 物理数据模型3.1 物理数据模型创建3.2 E-R 实体-联系图4. 生成脚本与逆向操作4.1 数据模型 >> SQL脚本文件4.2 SQL脚本文件 >> 数据模型5. SQLyog 中执行SQL脚本PowerDesigner 16.5 软件下载:链接:https://pan.baidu.com/s/1Wbgm3N9lYh9QUU7aPzr原创 2020-05-20 00:15:41 · 1252 阅读 · 0 评论 -
dbutils常用结果集的使用和对比
dbutils常用结果集的使用1. ResultSetHandler 接口2. 单行数据2.1 ScalarHandler 单值2.2 ArrayHandler 单行对象数组2.3 MapHandler 单行Map对象2.4 BeanHandler 单行Bean对象3. 多行数据3.1 ArrayListHandler3.2 MapListHandler3.3 ColumnListHandler3...原创 2020-05-01 10:10:56 · 653 阅读 · 0 评论 -
c3p0数据库连接池的使用
c3p0数据库连接池的使用1. 导入 jar 包2. 配置文件3. 连接池工具类4. 执行SQL语句1. 导入 jar 包jar包下载地址:https://mvnrepository.com/导入IDEA:2. 配置文件位置:src\c3p0.propertiesc3p0.driverClass=com.mysql.jdbc.Driverc3p0.jdbcUrl=jdbc:mys...原创 2020-04-24 21:47:54 · 534 阅读 · 0 评论 -
MySQL插入中文显示乱码或问号最简单办法(3行搞定)
文章目录1. 设置 2 处MySQL字符集2. 重启 MySQL 服务MySQL:小朋友,你是否有很多问号???MySQL插入后中文乱码或问号???问题现象:1. 设置 2 处MySQL字符集Windows下和Linux下修改方法一样:① 找到核心配置文件 C:\ProgramData\MySQL\MySQL Server 5.7\my.ini说明:ProgramData默认为隐...原创 2020-04-11 12:42:07 · 670 阅读 · 0 评论 -
JDBC三层架构设计思想和Apache的DBUtils使用
JDBC中Apache的DBUtils使用方法1. Apache 的 DBUtils 使用方法2. 代码示例1. Apache 的 DBUtils 使用方法Commons DbUtils 是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能勾简化JDBC应用程序的开发!同时,不会影响程序的性能。DbUtils是Java编程中数据库操作实用小工具,小巧、简单、实用。对于...原创 2020-04-02 21:56:52 · 364 阅读 · 0 评论 -
JDBC中ThreadLocal类的使用及解决转账事务问题
ThreadLocal类的使用、JDBC中转账事务问题解决1. ThreadLocal 类的使用2. 转账中的事务流程体现转账基本流程:fromAccount 转入 toAccount 账户中一定金额验证 fromAccount 是否存在验证 fromAccount 是否密码正确验证当前账户余额是否充足验证 toAccount 是否存在减少 fromAccount 的余额增加 t...原创 2020-04-01 19:14:04 · 749 阅读 · 0 评论 -
JDBC数据库连接池工具类和Service业务封装思想
数据库连接池、业务封装思想1. JDBC 数据库连接池工具类1.1 自定义连接池1.2 Druid 德鲁伊连接池(alibaba)2. Service 业务封装思想共用的配置文件:database.properties# 数据库配置driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/数据库名?useUnicode=true...原创 2020-04-01 18:45:01 · 483 阅读 · 0 评论 -
JDBC封装连接工具类和封装数据访问思想(ORM/DAO)
JDBC封装连接工具类、封装数据访问:ORM思想与DAO层1. JDBC 封装连接数据库工具类1.1 可重用方式1.2 跨平台方式2. JDBC 封装数据访问2.1 ORM 思想2.2 DAO 层补充:String、java.util.Date、java.sql.Date 之间的转换1. JDBC 封装连接数据库工具类1.1 可重用方式封装了获取连接、释放资源两个方法:public st...原创 2020-04-01 00:41:18 · 441 阅读 · 0 评论 -
JDBC的环境搭建与基本开发步骤
JDBC的基本使用与开发步骤1. JDBC基本认识1.1 什么是JDBC?1.2 JDBC核心思想1.1.1 MySQL数据库驱动1.1.2 JDBC API1.3 环境搭建2. JDBC开发步骤2.1 注册驱动2.2 连接数据库2.3 获取发送SQL的对象2.4 执行SQL语句2.5 处理结果2.6 释放资源2.7 综合案例3. ResultSet(结果集)3.1 接收结果集3.2 遍历Resu...原创 2020-03-30 20:24:46 · 943 阅读 · 0 评论 -
MySQL数据库语句之约束、事务、权限、视图
MySQL 约束、事务、权限、视图1. 约束1.1 实体完整性约束1.1.1 主键约束1.1.2 唯一约束1.1.3 自动增长列1.2 域完整性约束1.2.1 非空约束1.2.2 默认值约束1.2.3 引用完整性约束1.3 约束创建整合案例1.3.1 创建表2. 事务2.1 模拟转账2.1.1 数据库模拟转账2.1.2 模拟转账错误2.2 事务的概念2.3 事务的起始2.4 事务的原理2.5 事务...原创 2020-03-28 18:19:56 · 466 阅读 · 0 评论 -
MySQL-数据的 DML 操作: 增、删、改
DML 操作: 增、删、改1.1 新增(INSERT)1.1.1 添加一条信息1.2 修改(UPDATE)1.2.1 修改一条信息1.3 删除(DELETE)1.3.1 删除一条信息1.4 清空整表数据(TRUNCATE)1.4.1 清空整张表1.1 新增(INSERT)语法:INSERT INTO 表名(列 1,列 2,列 3…) VALUES(值 1,值 2,值 3…);1.1.1 ...原创 2020-03-28 18:14:43 · 269 阅读 · 0 评论 -
MySQL数据库操作与数据表操作
MySQL数据库操作与数据表操作1. 数据【库】操作1.1 数据值类型1.1.1 数值类型1.1.2 日期类型1.1.3 字符串类型1.2 创建数据库(CREATE)1.2.1 创建数据库1.3 修改数据库(ALTER)1.3.1 修改数据库的字符集1.3.2 修改数据库的列(列:增、删、改)1.4 删除数据库(DROP)1.4.1 删除数据库2. 数据【表】操作(DML:增、删、改)2.0 数据...原创 2020-03-27 20:51:06 · 359 阅读 · 0 评论 -
MySQL数据查询语法大全(汇总)
MySQL数据查询语法大全1. 基本查询1.1 查询部分列1.2 查询所有列1.3 对列中的数据进行运算1.4 列的别名1.5 查询结果去重2. 排序查询2.1 依据单列排序2.2 依据多列排序3. 条件查询3.1 等值判断(=)3.2 逻辑判断(and、or、not)3.3 不等值判断(> 、< 、>= 、<= 、!= 、<>)3.4 区间判断(between...原创 2020-03-26 19:10:11 · 1764 阅读 · 1 评论 -
MySQL详细安装步骤、配置、基本操作
MySQL安装与基本操作1. MySQL 的安装1.1 MySQL 安装文件获取1.2 MySQL 详细安装步骤1.3 关闭开机自启、手动启动命令1.4 卸载 (若需重装)2. MySQL 环境变量配置3. MySQL 基本命令1. MySQL 的安装1.1 MySQL 安装文件获取官方网站:https://www.mysql.com/下载地址:https://dev.mysql.com...原创 2020-03-25 17:57:32 · 729 阅读 · 0 评论