
数据库
文章平均质量分 89
数据库各类知识
pmc0_0
想做一个优秀的Java后端开发工程师
展开
-
主从数据一致性
首先我们将多个节点共同组成一个复制组,在 执行读写(RW)事务 的时候,需要通过一致性协议层(Consensus 层)的同意,也就是读写事务想要进行提交,必须要经过组里“大多数人”(对应 Node 节点)的同意,大多数指的是同意的节点数量需要大于(N/2+1),这样才可以进行提交,而不是原发起方一个说了算。并发差,如果有多个从库,要等所有从库都发送ack才能保证数据强一致性,如果只有一部分发送ack,主库就返回客户端,还有有可能造成主从数据不一致。进行主从同步的内容是二进制日志,它是一个文件,在进行。...原创 2022-08-29 10:47:11 · 251 阅读 · 0 评论 -
binlog格式设置
不记录每条sql语句的上下文信息,仅记录哪条数据被修改了,修改成什么样了。就是你插入5条数据,RBR会记录五条数据,而SBR只会记录一条插入数据的sql。MySQL会根据执行的每一条具体的sql语句来区分对待记录的日志形式,也就是在Statement和Row之间选择一种。这也是系统不允许我们创建函数的原因,从服务器执行时间函数,复制的数据会不一样。在Mixed模式下,...原创 2022-08-29 09:27:58 · 756 阅读 · 0 评论 -
Mysql其他日志
可以先看Event_type,三个Write_rows,一个Update_rows,一个Delete_rows,就是对应我们刚刚的更新SQL,BEGIN到COMMIT是一个完整的事件,我们基于Pos去恢复。并不会回滚事务,它会执行上图框住的逻辑,虽然redo log是处于prepare阶段,但是能通过事务id找到对应的binlog日志,所以MySQL认为是完整的,就会提交事务恢复数据。的架构,把二进制日志文件的内容通过中继日志,同步到从数据库服务器中,这样就可以有效避免数据库故障导致的数据异常等问题。...原创 2022-08-28 15:47:16 · 509 阅读 · 1 评论 -
InnoDB多版本并发控制MVCC
MVCC是通过数据行的多个版本管理来实现数据库的 并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样在做查询的时候就不用等待另一个事务释放锁。原创 2022-08-24 23:50:41 · 244 阅读 · 0 评论 -
Mysql锁
锁机制为实现MySQL 的各个隔离级别提供了保证。锁冲突也是影响数据库并发访问性能的一个重要因素。所以锁对数据库而言显得尤其重要,也更加复杂。原创 2022-08-24 14:59:04 · 311 阅读 · 0 评论 -
Mysql事务日志
注意,redo log buffer刷盘到redo log file的过程并不是真正的刷到磁盘中去,只是刷入到 文件系统缓存(page cache)中去(这是现代操作系统为了提高文件写入效率做的一个优化),真正的写入会交给系统自己来决定(比如page cache足够大了)。因为事务提交后,要把数据写入磁盘,写入一半时宕机的话,如果没有redo日志,则会丢失掉一部分数据,有了redo日志则会记录要修改成什么,重启Mysql后可以借助redo.file去完成未修改成功的部分事务,保证事务的持久性。...原创 2022-08-18 23:38:57 · 253 阅读 · 0 评论 -
Mysql事务
此时的数据是不一致的,为什么呢?长事务第一次读取值,第二次再读取时,值被短事务提交修改过了(短事务已经完成状态),两次读取的值不一致。但是这样对 性能影响太大 ,我们既想保持事务的隔离性,又想让服务器在处理访问同一数据的多个事务时性能尽量高些 ,那就看二者如何权衡取舍了。事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能相互干扰。一个长事务把短事务的修改给覆盖了,让短事务查询不到自己的修改结果,(两个事务都是写,同时写)..原创 2022-08-18 13:19:31 · 347 阅读 · 0 评论 -
索引优化与查询优化
物理查询优化是通过索引和表连接方式等技术来进行优化,这里重点需要掌握索引的使用。逻辑查询优化就是通过SQL等价变换提升查询效率,直白一点就是说,换一种查询写法效率可能更高。对于单列索引,尽量选择针对当前query过滤性更好的索引在选择组合索引的时候,当前query中过滤性最好的字段在索引字段顺序中,位置越靠前越好。在选择组合索引的时候,尽量选择能够当前query中where子句中更多的索引。在选择组合索引的时候,如果某个字段可能出现范围查询时,尽量把这个字段放在索引次序的最后面。...原创 2022-08-17 23:09:21 · 227 阅读 · 0 评论 -
数据库调优:性能分析工具EXPLAIN的使用
system>const>eq_ref>refrange>index>ALL其中比较重要的几个提取出来〈见上图中的蓝色)。SQL性能优化的目标:至少要达到range级别,要求是ref级别,最好是consts级别。(阿里巴巴开发手册要求)EXPLAIN不考虑各种CacheEXPLAIN不能显示MySQL在执行查询时所作的优化工作EXPLAIN不会告诉你关于触发器、存储过程的信息或用户自定义函数对查询的影响情况部分统计信息是估算的,并非精确值。...原创 2022-08-14 21:46:29 · 602 阅读 · 0 评论 -
数据库调优:定位慢查询
整个流程划分成了和两个部分。字母 S 的部分代表观察(会使用相应的分析工具),字母 A 代表的部分是行动(对应分析可以采取的行动)。在MySQL中,可以使用 SHOW STATUS 语句查询一些MySQL数据库服务器的SHOW STATUS语句语法如下:Connections:连接MySQL服务器的次数。Uptime:MySQL服务器的上线时间。Slow_queries:慢查询的次数。Innodb_rows_read:Select查询返回的行数Innodb_rows_inserted:执行IN原创 2022-08-12 12:49:04 · 486 阅读 · 0 评论 -
索引的设计原则
联合索引的最左字段可以当作单列索引使用,这时候有联合索引和单列索引(最左字段和单列字段一致),此时单列索引就没有必要了在实际工作中,我们也需要注意平衡,索引的数目不是越多越好。我们需要限制每张表上的索引数量,建议单张表索引数量不超过6个。每个索引都需要占用磁盘空间,索引越多,需要的磁盘空间就越大。索引会影响INSERT、DELETE、UPDATE等语句的性能,因为表中的数据更改的同时,索引也会进行调整和更新,会造成负担。...原创 2022-08-11 15:47:08 · 612 阅读 · 0 评论 -
索引的创建、查看、删除
- 从`功能逻辑`上说,索引主要有 4 种,分别是普通索引、唯一索引、主键索引、全文索引。- 按照`物理实现方式`,索引可以分为 2 种:聚簇索引和非聚簇索引。- 按照`作用字段个数`进行划分,分成单列索引和联合索引。...原创 2022-08-10 15:07:02 · 1367 阅读 · 0 评论 -
索引数据结构选择
InnoDB的B+树索引结构也提供自适应Hash索引,也就是对于一些经常用到的数据,InnoDB会存储到Hash表中,下次查询就会直接从自适应Hash表中。如何用 B 树进行查找。Hash索引效率高,那为什么用树作为常用的索引结构呢。Hash 索引与 B+ 树索引的区别。Hash结构一般用于缓存数据库。...原创 2022-08-04 22:34:22 · 119 阅读 · 0 评论 -
索引数据结构
索引(Index)是帮助MySQL高效获取数据的数据结构。原创 2022-08-04 21:33:45 · 597 阅读 · 0 评论 -
Mysql数据类型
整数类型字节数(一字节等于8位)TINYINT1SMALLINT2MEDIUMINT34BIGINT8。原创 2022-07-31 19:14:03 · 442 阅读 · 0 评论 -
mybatis-基础
文章目录相关依赖编写配置文件搭建环境和编写映射sql用单例模式改造基础环境简单测试实体类数据库访问层接口编写映射sql测试代码复杂测试(ResultMap的使用)实体类有一个的问题(association)第一种方法第二种方法有多个的问题(collection)第一种方法第二种方法相关依赖<!--mysql依赖--><dependency> <groupId>mysql</groupId> <artifactId>mysql-conn原创 2021-07-05 16:42:19 · 108 阅读 · 0 评论 -
Sql基础
Mysqlsql语句对数据库的操作无非就创建(Create)、 读取(Read)、 更新(Update)和删除(Delete),也就是我们的CRUD操作,其中最重要的读取操作Select语句执行顺序from(获取数据)where(过滤)group by(分组)select(输出)having(过滤)order by(排序)limit(限定个数)基础查询SELECT 查询列表 FROM 表名/* 查询列表可以是:表中的字段、常量值、表达式、函数 *:表示表中的全部原创 2021-03-17 12:13:34 · 228 阅读 · 0 评论 -
MybatisPlus
文章目录MybatisPlus简介框架结构MP-CRUD快速使用MP-分页查询MP-条件构造器WrapperMP-全局id生成策略MP-乐观锁MP-代码生成器MybatisPlus简介MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。框架结构MP-CRUD快速使用MP-分页查询MP-条件构造器WrapperMP-全局id生成策略MP-乐观锁MP-代码生成器...原创 2021-05-21 15:22:15 · 404 阅读 · 1 评论 -
Oracle_11g在Centos7静默安装和配置
数据常用缩写词Data 数据DB 数据库(DataBase)DBMS 数据库管理系统(Data Base Management System)DBA 数据库管理员(Date Base Administrator)DBS 数据库系统(Data Base System)DBS = 计算机系统(硬件基础、软件平台、管理员)+DBMS+DB一、Oracle环境准备1. 查看磁盘分区df -h2. 查看Swap分区free -m2.1 如上图没有启动Swap分区,则需要增加配置原创 2021-03-27 10:45:04 · 274 阅读 · 0 评论 -
ORACLE管理
SQL语言四大类别数据查询语言DQL()数据操纵语言DML()数据定义语言DDL()数据控制语言DCL(Data Control Language)1、数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件>2、数据操纵语言DML数据操纵语言DML主要有三种形式:1)插入:INSERT2)更新:UPDATE3)原创 2021-04-28 18:05:26 · 162 阅读 · 0 评论 -
ORACLE存储过程
存储过程匿名块是只使用一次的PL/SQL程序块,匿名块没有名称,也不被存储在数据库中,它不是PLISQL存储程序单元,由PLISQL的四个基本组成部分构成在SQL*PLUS中通过 “/” 编译并且执行不能被重复使用,当下要执行的时候,需要重新编写并编译执行,而存储过程就是在匿名块基础上给它加一个名字可以重复使用ORACLE存储过程语法CREATE [OR REPLACE] PROCEDURE 存储过程名字(parameter1_name [mode] datatype[DEFAULT|:=v原创 2021-04-23 11:23:37 · 178 阅读 · 0 评论 -
PL/SQL
文章目录一、PL/SQL的语法二、数据类型%TYPE记录类型%ROWTYPE三、流程控制IF语句简单Loop循环WHILE循环四、PL/SQLSELECT语句DML语句五、游标隐式游标SQL%ROWCOUNT显示游标一、PL/SQL的语法DECLARE--声明变量、常量、数据类型、游标、异常处理名称以及本地(局部)子程序定义等。BEGIN-- 可以写sql和pl/sql[EXCEPTION]-- 异常处理,不必须END;二、数据类型%TYPE如果要定义一个类型与某个变量的数据类型原创 2021-04-20 19:41:41 · 137 阅读 · 0 评论 -
ORACLE函数
以下sql用scott用户进行测试一、字符函数大小写转换函数LOWER(参数)把【参数】全部变成小写字母SELECT *FROM EMPWHERE LOWER(ENAME)='smith';UPPER(参数)把【参数】全部变成大写字母SELECT *FROM EMPWHERE ENAME=UPPER('smith');INITCAP(参数)把【参数】第一个字母大写,其余全部小写SELECT INITCAP(ENAME)FROM EMPWHERE ENAME原创 2021-04-18 19:31:32 · 128 阅读 · 0 评论 -
JDBC
Java Database Connectivity加载驱动程序(高版本mysql的驱动要用cj包下的)获得数据库连接创建Statement对象(操作 sql 语句的对象)执行 sql 并返回一个结果集package com.pang.studentweb;import java.sql.*;/** * @author pangjian * @ClassName JDBCTest * @Description TODO * @date 2021/4/12 10:20 */原创 2021-04-12 12:30:58 · 102 阅读 · 0 评论 -
数据库三大范式和事务四大特性
数据库四大特性第一范式第二范式第三范式原创 2021-03-29 13:34:15 · 473 阅读 · 1 评论