![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库中间件
晓寒风骤
这个作者很懒,什么都没留下…
展开
-
MYSQL(十):ORDER BY 详解
1 概述MySQL有两种方式可以实现ORDER BY: 1.通过索引扫描生成有序的结果 2.使用文件排序(filesort) 围绕着这两种排序方式,我们试着理解一下ORDER BY的执行过程以及回答一些常见的问题(下文仅讨论InnoDB存储引擎)。2 索引扫描排序和文件排序(filesort)简介我们知道InnoDB存储引擎以B+树作为索引的底层实现,B+树的叶子节...原创 2020-03-25 14:13:47 · 569 阅读 · 0 评论 -
MYSQL(九):sql执行过程
今天我们就把 MySQL 拆解一下,看看里面都有哪些“零件”,希望借由这个拆解过程,让你对 MySQL 有更深入的理解。这样当我们碰到 MySQL 的一些异常或者问题时,就能够直击本质,更为快速地定位并解决问题。下面我给出的是MySQL的基本架构示意图,从中你可以清楚地看到SQL语句在MySQL的各个功能模块中的执行过程。MySQL的逻辑架构图大体来说,MySQL 可以分为 Ser...原创 2020-03-25 14:06:59 · 310 阅读 · 0 评论 -
MYSQL(八):查看被锁住的表
查询是否锁表show OPEN TABLES where In_use > 0;查看所有进程MySQL:show processlist;mariabd:show full processlist;查询到相对应的进程===然后 kill id杀掉指定mysql连接的进程号kill $pid查看正在锁的事务SELECT * FROM INFORMATION_SCHE...原创 2020-02-27 16:51:57 · 2020 阅读 · 0 评论 -
Spring Data JPA 实现原理与源码解析系统
1. Spring For All 社区 Spring Data JPA 从入门到进阶系列教程作者 :Spring For All 博客 :http://www.spring4all.com/article/500Spring Data JPA 入门系列《Spring Data JPA系列:基本配置》 《Spring Data JPA系列:继承的方法》 《Spring Data J...原创 2019-11-25 14:10:26 · 1284 阅读 · 1 评论 -
数据库连接池(一):HikariCP 源码解析
《【追光者系列】HikariCP 连接池监控指标实战》 《【追光者系列】Can you Read Aloud The Word Hikari Properly?》 《【追光者系列】HikariCP 默认配置》 《【追光者系列】HikariCP 连接池配多大合适(第一弹)?》 《【追光者系列】HikariCP 源码分析之 allowPoolSuspension》 《【追光者系列】Hikar...原创 2019-11-25 14:07:54 · 996 阅读 · 0 评论 -
MYSQL(七):索引背后的数据结构及算法原理
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第...原创 2019-11-12 15:57:45 · 121 阅读 · 0 评论 -
MYSQL(一):数据库概述
一、SQL :一种熟悉又陌生的编程语言这里有几个关键词;“熟悉”、“陌生”、“编程语言”。说它“熟悉”,是因为它是DBA和广大开发人员,操作数据库的主要手段,几乎每天都在使用。说它“陌生”,是很多人只是简单的使用它,至于它是怎么工作的?如何才能让它更高效的工作?却从来没有考虑过。这里把SQL归结为一种“编程语言”,可能跟很多人对它的认知不同。让我们看看它的简单定义(以...原创 2019-06-27 11:02:06 · 507 阅读 · 0 评论 -
MYSQL(四):隔离级别,锁与MVCC
原文:https://www.cnblogs.com/yelbosh/p/5813865.html本文主要是针对MySQL/InnoDB的并发控制和加锁技术做一个比较深入的剖析,并且对其中涉及到的重要的概念,如多版本并发控制(MVCC),脏读(dirty read),幻读(phantom read),四种隔离级别(isolation level)等作详细的阐述,并且基于一个简单的例子,对MyS...原创 2019-07-03 13:34:47 · 196 阅读 · 0 评论 -
MYSQL(二):索引
在讲为什么要用到索引之前,我们先试着思考一个问题 :如果让你来实现,从表中大量的行中查询满足条件的记录,你会怎么做?能够想到的最简单的方式应该是表轮询,通过遍历的方式逐行对比(全表扫描),过滤出期望的结果。--理论上功能可以实现,但其算法的时间复杂度为O(N),当表的数据量非常大时,性能怎么保证? 接着思考下第二个问题:那么,怎么才能提升查询的性能呢?哦...原创 2019-06-27 19:21:27 · 264 阅读 · 3 评论 -
MySQL索引背后的数据结构及算法原理
写在前面的话 在编程领域有一句人尽皆知的法则“程序 = 数据结构 + 算法”,我个人是不太赞同这句话(因为我觉得程序不仅仅是数据结构加算法),但是在日常的学习和工作中我确认深深感受到数据结构和算法的重要性,很多东西,如果你愿意稍稍往深处挖一点,那么扑面而来的一定是各种数据结构和算法知识。例如几乎每个程序员都要打交道的数据库,如果仅仅是用来存个数据、建建表、建建索引、做做增删改查,...翻译 2018-12-12 15:54:56 · 152 阅读 · 0 评论 -
MYSQL(三):执行计划
前言在MySQL中,我们可以通过EXPLAIN命令获取MySQL如何执行SELECT语句的信息,包括在SELECT语句执行过程中表如何连接和连接的顺序。下面分别对EXPLAIN命令结果的每一列进行说明:.select_type:表示SELECT的类型,常见的取值有:类型 说明 SIMPLE 简单表,不使用表连接或子查询 PRIMARY 主查询,即...原创 2019-06-28 15:08:41 · 174 阅读 · 0 评论 -
数据安全(一):Apache ShardingSphere数据脱敏全解决方案详解
一、背景安全控制一直是治理的重要环节,数据脱敏属于安全控制的范畴。对互联网公司、传统行业来说,数据安全一直是极为重视和敏感的话题。数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。涉及客户安全数据或者一些商业性敏感数据,如身份证号、手机号、卡号、客户号等个人信息按照相关部门规定,都需要进行数据脱敏。在真实业务场景中,相关业务开发团队则往往需要针对公司安全部门...原创 2019-09-18 10:07:37 · 1341 阅读 · 0 评论 -
mysql(五):一次难得的分库分表实践
<!--more-->先来回顾下整个分库分表的流程如下:整个过程也很好理解,基本符合大部分公司的一个发展方向。很少会有业务一开始就会设计为分库分表,虽说这样会减少后续的坑,但部分公司刚开始都是以业务为主。直到业务发展到单表无法支撑时,自然而然会考虑分表甚至分库的事情。于是本篇会作一次总结,之前提过的内容可能会再重复一次。分表首先讨论下什么样的情况下适合分...原创 2019-09-18 10:18:32 · 406 阅读 · 0 评论 -
mysql(六):MySQL分页Limit优化
测试表:user_center. user_app_device数据量:8千万条分页语句SQL_1:SELECT id,uid,device_token FROM user_app_device WHERE app_id=100000000 LIMIT i,100;分页语句SQL_2:SELECT a.id,a.uid,a.device_token FROM user_app_dev...原创 2019-09-23 14:51:00 · 306 阅读 · 0 评论 -
mybatis源码学习(四):动态SQL的解析
之前的一片文章中我们已经了解了MappedStatement中有一个SqlSource字段,而SqlSource又有一个getBoundSql方法来获得BoundSql对象。而BoundSql中的sql字段表示了绑定的SQL语句而且我们也已经了解过了SqlSource中的静态SQL的解析过程(RawSqlSource),这次我们来了解下动态SQL的解析过程。动态SQL对应的SqlSourc...原创 2019-03-15 16:09:52 · 278 阅读 · 0 评论 -
mybatis源码学习(一):Mapper的绑定
在mybatis中,我们可以像下面这样通过声明对应的接口来绑定XML中的mapper,这样可以让我们尽早的发现XML的错误。定义XML:<?xml version="1.0" encoding="UTF-8" ?><!-- Copyright 2009-2016 the original author or authors. Lic...原创 2019-03-15 15:47:16 · 597 阅读 · 0 评论 -
mybatis源码学习(二):SQL的执行过程
从上一篇文章中,我们了解到MapperMethod将SQL的执行交给了sqlsession处理。今天我们继续往下看处理的过程。SqlSession接口除了提供获取Configuration,Mapper的方法之外,主要的作用就是提供增删该查的方法。/** * Copyright 2009-2016 the original author or authors. * *...原创 2019-03-15 16:01:02 · 247 阅读 · 0 评论 -
mybatis源码学习(三):MappedStatement的解析过程
我们之前介绍过MappedStatement表示的是XML中的一个SQL。类当中的很多字段都是SQL中对应的属性。我们先来了解一下这个类的属性:public final class MappedStatement { private String resource; private Configuration configuration; //sql的ID priv...原创 2019-03-15 16:01:52 · 1806 阅读 · 0 评论