- 博客(25)
- 资源 (4)
- 收藏
- 关注

原创 MySQL8中文手册【持续更新】
前言网上充斥着各种MySQL的学习资料,有所谓的小白学习笔记也有大牛的分享文章,有免费的也有收费的,文章的质量也是鱼龙混杂,经常看到文章与文章之间相互矛盾,甚至文章前后矛盾。至于为什么要翻译官方文档,还要源于上次学习极客时间的付费文章,其中一篇对change buffer的说明,文章中描述change buffer是用于更新数据缓存,后面又对change buffer和redo log的关系进行了说明,然而评论中有各种观点,有些说change buffer只针对索引数据进行缓存,文章前后翻了好几遍,始终
2021-03-26 16:26:43
2082
1
原创 MySQL8中文手册-事务隔离级别
15.7.2.1 事务隔离级别事务隔离是数据处理工作的基础之一。隔离性表示的是ACID中的I,事务隔离级别主要用来平衡在多个事务同时进行查询和变更时结果的性能、可靠性、一致性和可重复性之间的关系。InnoDB提供了在SQL:1992标准中定义的四种隔离级别,未提交可读(READ_UNCOMMITED)、提交可读(READ_COMMITTED)、可重复读(REPEATABLE_READ)和串行访问(SERIALIZABLE)。InnoDB的默认隔离级别是可重复读。用户可以使用SET TRANSACTIO
2021-04-12 17:12:13
296
原创 如何为生产MySQL配置全新的备库
MySQL版本8.0.12前言:备库常见的使用场景不同角色使用不同数据库。备库当作备用的主库,必要时进行主备切换。备库放到远程数据中心,用作灾备。延迟备库,用于数据误删恢复。备库作为备份、培训、开发或测试用服务器。1、备机上安装MySQL服务版本必须等于或高于主库版本,因为MySQL是向前兼容的,高版本的MySQL可以解析低版本的binlog,反之则不一定。2、进行配置修改/etc/my.cnf配置文件配置server_id,主库和备库必须不同配置bin_log=binlo.
2021-04-01 16:16:03
666
1
原创 MySQL8中文手册-GROUP BY优化
8.2.1.17 GROUP BY 优化通常用来满足GROUP BY分组的方式是扫描全表数据,创建临时表,将行数据按照分组字段连续存储在临时表中,然后使用这个临时表对同一分组的数据进行累加。在一些条件下,MySQL可以在这种方式上进行优化,使用索引进行分组,避免使用临时表。要使用索引满足GROUP BY分组的重要的前提条件是所有GROUP BY的列都在同一个索引上,而且这个索引必须是有序的(比如BTREE索引,HASH索引则不行)。是否能用上索引进行分组,而不使用临时表,也取决于查询使用的哪部分索引,以
2021-03-31 17:33:29
1151
原创 MySQL8中文手册-MRR优化
网上充斥着各种MySQL的学习资料,有所谓的小白学习笔记也有大牛的分享文章,有免费的也有收费的,文章的质量也是鱼龙混杂,经常看到文章与文章之间相互矛盾,甚至文章前后矛盾。至于为什么要翻译官方文档,还要源于上次学习极客时间的付费文章,其中一篇对change buffer的说明,文章中描述change buffer是用于更新数据缓存,后面又对change buffer和redo log的关系进行了说明,然而评论中有各种观点,有些说change buffer只针对索引数据进行缓存,文章前后翻了好几遍,始终有个.
2021-03-26 16:14:29
507
1
原创 MySQL8中文手册-二进制日志(binlog)
网上充斥着各种MySQL的学习资料,有所谓的小白学习笔记也有大牛的分享文章,有免费的也有收费的,文章的质量也是鱼龙混杂,经常看到文章与文章之间相互矛盾,甚至文章前后矛盾。至于为什么要翻译官方文档,还要源于上次学习极客时间的付费文章,其中一篇对change buffer的说明,文章中描述change buffer是用于更新数据缓存,后面又对change buffer和redo log的关系进行了说明,然而评论中有各种观点,有些说change buffer只针对索引数据进行缓存,文章前后翻了好几遍,始终有个.
2021-03-24 15:14:29
1158
2
原创 MySQL8中文手册-InnoDB的锁
15.7.1 InnoDB LockingThis section describes lock types used by InnoDB.本节主要说明InnoDB使用的各种类型的锁。Shared and Exclusive LocksIntention LocksRecord LocksGap LocksNext-Key LocksInsert Intention LocksAUTO-INC LocksPredicate Locks for Spatial IndexesShared
2021-03-12 06:39:27
645
原创 MySQL8中文手册-Order by的优化
8.2.1.16 ORDER BY的优化本节内容说明MySQL查询语句需要ORDER BY排序时,在什么情况下会使用索引进行排序,以及在不能使用索引的情况下如何使用filesort排序,以及由优化器提供的执行计划中有关ORDER BY的信息。需要ORDER BY排序的查询中,使用和不使用LIMIT返回的数据顺序可能会不同,在Section 8.2.1.19, “LIMIT Query Optimization”.已经讨论过。使用索引满足ORDER BY排序使用filesort文件排序ORDER B
2021-03-09 17:42:18
981
2
原创 MySQL8中文手册-调优InnoDB的I/O能力
15.8.7 配置InnoDB的I/O能力参数InnoDB的主线程和其他线程运行了多种后台任务,其中大多数任务都是I/O操作相关的,比如从buffer pool中刷脏数据页,把change buffer中的变更内容保存到对应的二级索引。InnoDB引擎在运行这些后台任务的时候,尽量不影响其他任务的正常运行。引擎会预估操作系统可用的I/O操作能力,并根据能力对后台任务的执行频率进行调整,以发挥引擎的最大的性能。innodb_io_capacity参数定义了InnoDB的总体I/O操作能力,这个参数一般设置
2021-03-02 11:12:09
1289
原创 MySQL8中文手册-buffer pool使用说明
15.5.1 Buffer Poolbuffer pool是一块用于InnoDB引擎在请求数据时缓存表和索引数据的内存区域。buffer pool中允许直接从内存中读取经常使用的数据,这样可以提升数据访问速度。在专用的数据库服务器上,buffer pool经常可以使用多达80%的物理内存。为了提升大数据量读取操作的效率,buffer pool缓存的单位是数据页,一个数据页可以保存多行数据。为了提升缓存管理效率,buffer pool用链表来实现,最少被使用数据页会通过LRU算法被换出缓存。理解并最大限
2021-02-27 01:47:25
799
原创 MySQL8查看存储过程
使用如下命令可以查看数据表的存储过程mysql>SELECT ROUTINE_TYPE, ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA='dbname'; +--------------+----------------+| ROUTINE_TYPE | ROUTINE_NAME |+--------------+----------------+| PROCEDURE | c
2021-02-25 17:06:39
2139
原创 MySQL8中文手册-change buffer
最近在重新学习丁奇的《MySQL实战45讲》时,读到了第9讲关于change buffer的部分,对change buffer的缓存内容及机制比较疑惑,在百度上搜索了一些文章,表述也比较模糊,因此找到了mysql官方参考手册,并对change buffer章节进行了翻译,还是要相信权威的说明。
2021-02-25 14:41:21
1075
2
原创 openstack踩坑日志-glance启动失败
openstack安装过程中一个诡异问题的排查过程及解决方案,glance启动不报错,但服务却一直使用不了,找到问题的原因却大跌眼镜。
2020-12-22 14:27:24
2517
原创 使用Spring AOP实现简单的日志解耦
一、什么是AOP?AOP(Aspect Oriented Programming),即为面向切面编程,那什么是切面?如果你家里装了前置净水器的话,这个概念很好理解,就是在进水的地方,把水管切断,在进水之后入户之前装上净水器,实现了对进水的净化处理。从扩展性来讲,如果用户需要全屋水加热,那就在切面里串一个加热器就行能轻松实现,不用每个出水的地方都加热,这就是切面的现实应用实例。那到软件的世界...
2020-04-09 11:33:51
542
原创 Spring+MyBatis组合的几种实现方式(三)使用MyBatis-Spring-Boot-Starter
1、什么是MyBatis-Spring-Boot-Starter前面我们学习了原生MyBatis、MyBatis-Spring两种方式在你的项目中使用MyBatis的方式,可以发现原生MyBatis使用起来还是比较麻烦的,需要在代码中通过操作SqlSession、SqlSessionFactory两个类才能完成sql操作,在MyBatis-Spring中把SqlSession和SqlSessio...
2020-03-26 11:11:35
372
原创 required a bean of type 'com.xxx.xxx' that could not be found.错误
在编写MyBatis-Spring-Boot-Starter示例代码的时候遇到一个奇怪的问题,写了一个Mapper在Controller中使用@Autowire自动装载,却一直提示报错,找不到Mapper这个bean,错误信息如下:Error starting ApplicationContext. To display the conditions report re-run your app...
2020-03-26 10:17:10
2060
原创 Spring+MyBatis组合的几种实现方式(二)使用MyBatis-Spring
1、什么是MyBatis-Spring?MyBatis-Spring 可以帮助你将 MyBatis 无缝地整合到 Spring 中。允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。2、为什么会有MyBatis-S...
2020-03-25 19:26:59
272
原创 Spring+MyBatis组合的几种实现方式(一)使用原生Mybatis
Mybatis是一款优秀的ORM框架,但使用起来相对比较麻烦,不像Spring JPA(Hibernate),需要手动创建表、手动编写sql语句,这也正是Mybatis的优势之一,下面我们就以持久化一张用户表为例,介绍使用Mybatis的几种方式。一、原生Mybatis方式点击下载git源代码1、原理介绍所有Mybatis使用都依赖SqlSessionFactory实例,SqlSessio...
2020-03-24 19:16:15
457
原创 【问题驱动学习】-当你new一个对象的时候,JVM都做了什么?
构造器Java代码里面用new生成一个对象的时候,JVM会执行用来请求内存的 new 指令,以及用来调用构造器的 invokespecial 指令。通过使用javap命令查看生成的字节码,就能清晰的看到。// Foo foo = new Foo(); java代码 0 new Foo //申请内存 3 dup 4 invokespecial Foo() //调用构造器 7 a...
2020-03-13 12:01:58
178
原创 可能是最详细的HashMap(Java8)实现详解-原理+源码解析
1、预备知识hashhash又称散列或杂凑,一般音译为哈希,是指一种算法、函数或数据结构,可以根据key值直接映射为存储位置,为了方便理解,见下图:示例:假如key是一个数字,hash函数为取余,存储为数组key=100,hash为模10,经过hash后为0,即存储在数组的0号位置key也可以是字符串等,采用合适的hash函数,即可将key值散列到存储数组中链表红黑树红黑树是...
2020-03-09 16:11:31
679
原创 Java操作Mysql数据库的几种方式(二)-Spring框架JDBC包
使用Spring框架JDBC包操作mysqlSpring框架提供了JDBC核心包,支持基础的JDBC操作和错误处理,主要通过以下三个类:JdbcTemplateNamedParameterTemplateSQLExceptionTranslator首先Pom中添加依赖mysql jdbc驱动依赖和Spring框架依赖<dependency> <groupId&g...
2020-03-05 14:07:54
342
原创 Java操作Mysql数据库的几种方式(一)-Mysql Connector/J组件
环境准备安装Mysql5.7建议使用Docker方式安装和启动Mysql安装Docker,如果已安装请忽略,这里是在Mac环境下安装的,其他环境类似#brew cash install docker下载Mysql镜像,这里下载的是5.7版本#docker pull mysql:5.7如果不加:5.7的参数,默认会下载最新的8.0版本下载完成后,可以使用以下命令查看是否下载成...
2020-03-03 16:35:10
1186
原创 当我们在说Spring的时候,到底是在说什么?
Spring是什么?当我们说到Spring的时候通常可能表示两个意思,可能是指Spring家族,它包含了Spring Framework、Spring Boot、SpringCloud、Spring Data等;另外一个意思就是指的Spring Framework。我们这里说的Spring就是指Spring Framework,它是一个Java应用程序框架。什么是框架呢?框架最直观的理解是给你...
2020-02-27 16:18:00
274
原创 JVM1.8规范-运行时数据区(Run-Time Data Areas)
运行时数据区(Run-Time Data Areas)pc寄存器(The pc Register)如果当前执行的是java方法,pc寄存器包含当前执行的方法虚拟机当前执行的指令(instruction),如果当前执行的是native方法,pc寄存器的值为undefinedJVM栈(Java Virtual Machine Stacks)每个java线程都有私有的JVM栈,在线程创建...
2020-02-25 14:52:08
197
C#会员系统源码.rar
2020-08-01
Publishing.Managing.And.Customizing.OpenCMS.6.Websites
2009-06-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人