MySQL
关系型数据库数据库
xlshi1996
业精于勤荒于嬉
展开
-
解决前端中文字段乱码
问题描述前端展示后台返回中文字段乱码,显示问号。问题定位在后端中打日志定位到数据库传过来就是乱码@Overridepublic List<CoopInstPo> findTree() { List<CoopInstEntity> allCoopInst = this.getAllCoopInst(); logger.info("日志定位"); logger.info(String.valueOf(allCoopInst)); List&l原创 2021-12-20 18:37:32 · 1322 阅读 · 0 评论 -
数据库高频考点
文章目录关系型数据库基础索引事务锁非关系型数据库数据类型缓存异常事务关系型数据库基础数据库三大范式1.列不可再分2.再上面的基础上,不存在不完全依赖3.在上面的基础上,不存在依赖传递索引事务锁非关系型数据库数据类型Redis 的数据结构项目中 Redis的使用场景缓存异常事务Redis 定期清理数据的策略...原创 2020-12-27 19:33:49 · 112 阅读 · 0 评论 -
Mysql整理笔记05
Mysql整理笔记05原创 2020-11-17 09:56:49 · 51 阅读 · 0 评论 -
Mysql整理笔记04
Mysql整理笔记04原创 2020-11-17 09:56:03 · 50 阅读 · 0 评论 -
Mysql整理笔记03
Mysql整理笔记03原创 2020-11-17 09:55:21 · 55 阅读 · 0 评论 -
Mysql整理笔记02
Mysql整理笔记02原创 2020-11-17 09:42:25 · 52 阅读 · 0 评论 -
Mysql整理笔记01
Mysql整理笔记01原创 2020-11-17 09:41:37 · 65 阅读 · 0 评论 -
MySQL事务的底层实现原理
MySQL事务的底层实现原理特点:原子性(Atomicity)一致性(Consistency)隔离型(Isolation)持久性(Durability)一、事务的目的1、可靠性和并发处理**可靠性:**数据库要保证当insert或update操作时抛异常或者数据库crash的时候需要保障数据的操作前后的一致,想要做到这个,我需要知道我修改之前和修改之后的状态,所以就有了undo log和redo log。并发处理:也就是说当多个并发请求过来,并且其中有一个请求是对数据修转载 2020-10-15 09:33:28 · 2852 阅读 · 1 评论 -
innodb下幻读是如何在RR级别下被解决的
innodb下幻读是如何在RR级别下被解决的?先来简单的复习一下数据库隔离级别RU(Read Uncommitted)一个事务A读取到另一个事务B未提交的修改,B回滚了,就造成了数据不一致。(现象:脏读)RC(Read Committed)一个事务A在事务执行过程中第一次读取的值和第二次读取的值不一致,这是由于事务B在俩次读取之间修改了数据并提交了事务。(现象:不可重复读)RR(Repeatable Read)一个事务A在事务执行过程中第一次读取的值和第二次读取的值一致(转载 2020-10-15 08:45:42 · 548 阅读 · 0 评论 -
数据库-MVCC
什么是 MVCCMVCC (Multiversion Concurrency Control) 中文全称叫多版本并发控制,是现代数据库(包括 MySQL、Oracle、PostgreSQL 等)引擎实现中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的吞吐性能。如此一来,不同的事务在并发过程中,SELECT 操作可以不加锁而是通过 MVCC 机制读取指定的版本历史记录,并通过一些手段保证保证读取的记录值符合事务所处的隔离级别,从而解决并发场景下的读写冲突。下面举一个多版本读的例子,例如两个事转载 2020-10-13 10:24:26 · 108 阅读 · 0 评论 -
数据库-事务和隔离级别
事务和隔离级别原理:1.原则ACID:原子性,一致性,隔离性,持久性;2.多并发事务导致数据出现的错误脏读:事务A读取事务B未提交的数据,如果事务B回滚,将导致读取错误数据;不可重复读:事务A两次读取数据不一致;导致的原因是破坏了隔离性,事务B对数据进行了修改操作;幻读:事务A两次读取数据,第二次发现数据新增了;导致的原因是破坏了隔离性,事务B对数据新增了;3.解决错误的方法读未提交:全都不能解决读已提交:可以解决脏读可重复读:可以解决脏读、不可重复读串行化:把并发变成串行等待,全都原创 2020-10-13 10:03:27 · 77 阅读 · 0 评论 -
MySQL为什么要选B+数作为底层的数据结构
一: MySQL为什么要选B+数作为底层的数据结构推荐的算法演示平台MySQL的底层算法有B数、红黑树、hash、B+树,为什么就选择了B+树作为数据库的底层物理结构二叉树的特点是左节点小于根节点、根节点小于右节点B树由于存在特殊情况,如左节点为空,节点全在右节点上,这样导致的结果会造成和没有索引一样,依次查找,效率很低,同时也会造成树的深度很深,IO次数太多导致查询效率很低。红黑树由于存在树的深度问题导致查数据IO消耗很大,索引降低了性能。Hash索引把数据以hash形式组织起来,因转载 2020-10-12 12:32:48 · 328 阅读 · 0 评论 -
笛卡尔乘积与数据库连接(join)
一、笛卡尔乘积与数据库连接(join)数据库连接是从两个关系的笛卡尔乘积中选取属性间满足一定条件的元组。现有两个关系R、S:关系R:关系S:关系R与S的笛卡尔乘积为:在连接中有两种非常重要的连接:等值连接与自然连接。等值连接:(条件R.B = S.B)当然也可以有非等值连接(比如R.C < S.E)自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是同名的属性值,并且在结果中把重复的属性列去掉。自然连接:在自然连接时候,关系R中的某些元祖有可能在S中不转载 2020-10-10 21:04:13 · 1072 阅读 · 0 评论 -
索引
索引索引是什么索引是一种数据结构,用于协助快速查询、更新数据库表中的数据索引的类型唯一索引/普通索引唯一索引:明确规定了该索引不会出现重复值,查询时查到符合条件的值就停止查询普通索引:查询时查到符合条件的值会继续查询,直到查到不符合条件的值主键索引/普通索引主键索引:叶子节点存放数据普通索引:叶子节点存放主键值,需要回表才能得到数据聚簇索引/非聚簇索引聚簇索引:索引顺序与数据存储顺序一致/叶子节点放数据,一张表只能有一个聚簇索引,主键索引就是一种聚簇索引非聚簇索引:叶子节点原创 2020-09-14 16:03:48 · 58 阅读 · 0 评论 -
搞懂数据库-Mysql事务
搞懂数据库-Mysql事务1.什么是事务事务(Transaction)是并发控制的基本单位。它是一个操作序列,这些操作要么都执行,要么都不执行。例如,转账业务,转和收两个操作要么都执行,只要有一方出现问题就都不执行。2.事务的作用事务是数据库维护数据一致性的单位,在每个事务结束后,都能保持数据一致性。3.事务的生命周期start transaction:开启事务rollback:撤销事务(事务回滚)commit:提交事务(更新事务)4.并发事务出现的问题生命周期介绍中,所有操作都是原创 2020-06-03 10:23:49 · 139 阅读 · 0 评论 -
搞懂数据库-数据库设计
搞懂数据库-关系型数据库设计背景面对海量数据,例如,上千万甚至上亿的数据,查询一次所花费的时间会变长,甚至会造成数据库的单点压力。那么数据库应该怎么来设计才更合理呢?对于一个复杂多变的场景,数据库应该怎么来设计?1.分库和分表设计1.分表1.1为什么要分表分库与分表的目的在于,减小数据库的单库单表负担,提高查询性能,缩短查询时间,此外,可以很大的缓解表锁的问题1.2什么时候分表那么什么时候应该分库和分表呢,阿里巴巴《Java 开发手册》提出单表行数超过 500 万行或者单表容量超过 2GB原创 2020-06-02 14:53:43 · 148 阅读 · 0 评论