数据库
文章平均质量分 72
西瓜游侠
希望自己能够开心
展开
-
最左前缀匹配
MYSQL 可以创建 联合索引(即有多个列的索引)。一个索引最多可以包含 16 列。当你创建了一个联合索引,该索引的任何最左前缀都可以用于查询。比如当你有一个联合索引 (col1, col2, col3),该索引的所有前缀为 (col1)、(col1, col2)、(col1, col2, col3),包含这些列的所有查询都会使用该索引进行查询。例子首先我们有如下一个表:CREATE TABLE test ( id INT NOT NULL, last_name原创 2021-05-23 13:39:12 · 251 阅读 · 0 评论 -
常见问题整理(常用SQL写法、热点问题)
1 SQL备忘录创建表CREATE TABLE IF NOT EXISTS tasks ( task_id INT(11) NOT NULL AUTO_INCREMENT, subject VARCHAR(45) DEFAULT NULL, start_date DATE DEFAULT NULL, end_date DATE DEFAULT NULL, description VARCHAR(200原创 2021-05-23 13:07:08 · 320 阅读 · 0 评论 -
MySQL 分页查询limit性能缺陷和优化方案
MySQL使用 limit 分页:limit m,n其中,m是偏移量,n是要查询的数量。当偏移量m过大的时候,查询效率会很低。因为MySQL是先查出m+n个数据,然后抛弃掉前m个数据。优化方法:可以通过子查询查出查出目标数据集合的第一个数据所在的行,然后用 >= 操作。如下:SELECT * FROM articles WHERE id >= (SELECT id FROM articles WHERE category_id = 123 ORDER BY id LIMIT转载 2021-05-23 11:07:51 · 2866 阅读 · 0 评论 -
MySQL读写分离(主从复制)
如何实现 MySQL 的读写分离?其实很简单,就是基于 主从复制架构。简单来说,就搞⼀个主库,挂多个从库,然后我们就 单单只是写主库,然后主库会⾃动把数据给同步到从库上去。MySQL主从复制的作用主数据库出现问题,可以切换到从数据库。可以进行数据库层面的读写分离。可以在从数据库上进行日常备份。MySQL主从复制的原理第一步:master在每个事务更新数据完成之前,将该操作记录串行地写入到binlog日志文件中。第二步:salve开启一个I/O 线程,从master拉取 bin l原创 2021-05-23 10:55:37 · 220 阅读 · 1 评论 -
MySQL分库、分表
转载:MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列) (juejin.cn)当数据量较大时(一般 千万条 记录级别以上),MySQL的性能就会开始下降,这时我们就需要 分库、分表,来优化数据,提高数据库的执行效率。1 分库一个库里表太多了,导致了海量数据,系统性能下降,把原本存储于一个库的表拆分存储到多个库上, 通常是将表按照功能模块、关系密切程度划分出来,部署到不同库上。优点:减少增量数据写入时的锁对查询的影响。由于单表数量下降,常见的查询操作由于减少了.转载 2021-05-22 23:39:47 · 211 阅读 · 0 评论 -
MySQL调优
转载:MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列) (juejin.cn)1 性能分析1.1 MySQL Query Optimizer(查询优化器)MySQL 中有专门负责优化 SELECT 语句的 优化器模块,主要功能:通过计算分析系统中收集到的统计信息,为客户端请求的 Query 提供它认为最优的执行计划(它认为最优的数据检索方式,但不见得是 DBA 认为是最优的,这部分最耗费时间)当客户端向 MySQL 请求一条 Query,命令解析器模块完成请求分.转载 2021-05-22 23:16:07 · 142 阅读 · 0 评论 -
MySQL中的锁机制
转载:MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列) (juejin.cn)1 锁的分类(1)从对数据操作的类型分类:读锁(共享锁):针对同一份数据,多个读操作可以同时进行,不会互相影响。写锁(排他锁):当前写操作没有完成前,它会阻断其他写锁和读锁。(2)从对数据操作的粒度分类:表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低(MyISAM 和 MEMORY 存储引擎采用的是表级锁);行级锁:开销大,加锁慢;会出现死.转载 2021-05-22 21:22:21 · 135 阅读 · 0 评论 -
MySQL数据库事务
转载:MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列) (juejin.cn)1 ACID事务基本要素一个事物由一批操作组合而成,要么全部成功,要么全部失败。事务四要素:A (Atomicity) 原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。C (Consistency) 一致性:在事务开始之前和事务结束以后,数据.转载 2021-05-22 21:00:58 · 153 阅读 · 0 评论 -
MySQL索引总结
转载:MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列) (juejin.cn)1 MySQL索引简介索引的本质是 数据结构,索引的目的在于 提高查询效率,可以类比字典、 火车站的车次表、图书的目录等 。可以简单的理解为“排好序的快速查找数据结构”,数据本身之外,数据库还维护者一个满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。下图是一种可能的索引方式示例。索引本身也很大,.转载 2021-05-22 19:44:32 · 178 阅读 · 0 评论 -
MySQL支持的数据类型
转载:MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列) (juejin.cn)MySQL支持的数据类型如下:分类类型名称说明整数类型tinyInt很小的整数(8位二进制)smallint小的整数(16位二进制)mediumint中等大小的整数(24位二进制)int(integer)普通大小的整数(32位二进制)小数类型float单精度浮点数double双精度浮点数decima.转载 2021-05-22 16:10:28 · 286 阅读 · 0 评论 -
MySQL存储引擎(InnoDB、MyISAM)
转载:MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列) (juejin.cn)存储引擎是MySQL的组件,用于处理不同表类型的SQL操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。一个数据库中多个表,可以使用不同引擎,以满足各种性能和实际需求。MySQL服务器使用 可插拔的存储引擎 体系结构,可以从运行中的 MySQL 服务器加载或卸载存储引擎 。1 如何查看、设置MySQL的存储引擎下面的命令可以用于转载 2021-05-22 15:49:47 · 293 阅读 · 0 评论 -
一条SQL查询语句的执行流程(SQL生命周期)
转载:MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列) (juejin.cn)一条SQL查询语句的执行流程大致如下图所示:流程描述:客户端 发起请求;请求到达 连接器(验证用户身份,给予权限);查询缓存(存在缓存则直接返回,不存在则执行后续操作);请求到达 分析器(对SQL进行词法分析和语法分析);请求到达 优化器(主要对执行的SQL优化,选择最优的执行方案);请求到达 执行器(执行时会先看用户是否有执行权限,有才去使用这个引擎提供的接口);去引擎层.转载 2021-05-22 14:13:23 · 281 阅读 · 0 评论 -
MySQL系统架构图
MySQL 插件式的存储引擎架构将查询的处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。连接层:最上层是一些客户端和连接服务。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了 连接池 的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。服务层:第二层服务层,主要完成大部分的核心服务功能, 包括查询解析、分析、优化、缓存、以及所有的转载 2021-05-22 13:51:37 · 600 阅读 · 0 评论 -
数据库三范式
转载:http://www.jianshu.com/p/3be2c9e22ca4范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,原创 2017-08-12 11:02:14 · 351 阅读 · 1 评论 -
数据库相关知识点总结
数据库范式参考http://www.360doc.com/content/12/0712/20/5287961_223855037.shtml96.数据库事务隔离级别参考http://blog.csdn.net/fg2006/article/details/693741397.数据库连接池的原理参考http://blog.csdn.net/shuaihj/article/details/142230原创 2017-08-12 10:52:34 · 942 阅读 · 0 评论 -
MySQL索引实战经验总结
MySQL索引对数据检索的性能至关重要,盲目的增加索引不仅不能带来性能的提升,反而会消耗更多的额外资源,本篇总结了一些MySQL索引实战经验。索引是用于快速查找记录的一种数据结构。索引就像是数据库中数据的目录,数据库在查询时,首先在索引中找到匹配的值,然后根据这个匹配值找到对应的数据行。1、概念解释聚簇索引聚簇索引的顺序就是数据的物理存储顺序,索引中数据域存储的就是实际的数据,一个表最多只能有一个转载 2017-09-05 18:32:36 · 341 阅读 · 0 评论 -
Spring Data JPA 之 JpaRepository
JpaRepository是Spring提供的非常强大的基本接口。1 JpaRepository1.1 JpaRepository接口定义JpaRepository接口的官方定义如下:public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, Q...原创 2018-04-01 23:54:20 · 59950 阅读 · 5 评论 -
order by 导致分页出现重复数据问题
原因有时候我们需要按照时间排序, 并配合 limit 进行分页查询.但是, 当 order by 的时间相同的时候, 系统对数据的排序可能变得随机化, (即一会儿这条数据在前面, 一会儿这条数据在后面). 所以, 当翻页的时候我们很容易便看到了重复的数据.解决办法在使用 order by 的时候, 在本身需要排序的 目标字段 之后再加上一个 唯一字段 (比如PK或者UNIQUE...原创 2018-06-08 10:12:05 · 5788 阅读 · 2 评论 -
spring+mybatis+mysql 使用时需要注意的几点
MYSQL使用时需要注意的几点一、pring+mybatis+mysql集成的关键点1、所需要的驱动包&lt;dependency&gt; &lt;groupId&gt;mysql&lt;/groupId&gt; &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&a原创 2018-08-08 17:06:42 · 713 阅读 · 0 评论 -
乐观锁、悲观锁
转载:http://www.open-open.com/lib/view/open1452046967245.html在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是乐观锁还是悲观锁,都是人们定义出来的概念,可转载 2017-08-12 14:01:17 · 366 阅读 · 0 评论