数据库
文章平均质量分 56
DB
oneslide
时代是浮躁的,心之所向,日积月累,愈久弥坚,大器晚成。
展开
-
mysql 8.0 搭建主从集群注意事项
mysql 8.0 的集群搭建方式和mysql 5.7的搭建方式,有点不同,命令改了。官方文档写的很全(又臭又长),所以写一篇笔记,简单总结下怎么搭建。怎么安装mysql 8.0就不赘述了,假设两台机器已经完成数据初始化。假设有两个主机,分别为: 192.168.0.6(主节点)、192.168.0.7。原创 2024-09-14 09:08:28 · 493 阅读 · 0 评论 -
MySQL库表占用空间排序
在进行数据库备份恢复时,经常会碰到耗时很长的问题。大概率是因为某些库表的占用空间太大。我们在备份时,把这些表拎出去单独处理即可。可以发现有些表甚至有100多个G的数据。原创 2024-04-24 09:43:08 · 314 阅读 · 0 评论 -
postgres-operator 原理解析- 章节 II 减少failover次数
postgres-operator滚动更新策略,减少failover次数原创 2022-11-21 11:01:24 · 411 阅读 · 0 评论 -
postgres-operator 原理解析- 章节 I
kubernetes云原生化postgresql 高可用方案patroni 原理解析原创 2022-11-18 14:35:12 · 838 阅读 · 0 评论 -
mysql导入csv文件
mysql 导入csv文件原创 2022-05-25 15:05:55 · 2588 阅读 · 0 评论 -
python 连接MySQL 5.7 数据库中文乱码问题
解决python连接mysql 5.7乱码问题原创 2022-05-25 14:49:28 · 177 阅读 · 0 评论 -
sharding-proxy读写分离
sharding-proxy不提供数据库的数据复制功能,仅作为一个透明的路由。读写分离此实验中使用两个Postgresql Docker 容器实例,构成一主一从的拓扑关系。sharding-proxy配置config-readwrite-splitting.yaml配置读写分离的文件# sharding-proxy代理数据库名schemaName: readwrite_splitting_dbdataSources: # 主数据库连接信息 primary_ds: url:原创 2021-12-09 10:56:48 · 1185 阅读 · 0 评论 -
sharding-proxy 分库分表配置
MySQL会给外键默认加一个索引吗?参考SHOW INDEX Statement的确会给外键默认加一个索引。外键约束默认创建的外键,子表加入引用父表某一行,那么更新子表的外键列和父表的主键都会被拒绝。...原创 2020-03-15 18:10:22 · 590 阅读 · 2 评论 -
PostgreSQL Failover and Backup Recovery
故障切换Reference Listhttps://www.postgresql.org/docs/11/warm-standby-failover.htmlhttps://www.postgresql.org/about/news/1917/备份恢复WAL文件归档PostgreSQL会产生无限数量的WAL(Write-ahead Log)日志,将这些WAL日志切分成文件,每个文件...原创 2020-02-11 09:47:17 · 575 阅读 · 1 评论 -
PostgreSQL HA
两种主从复制方式log-shipping和streaming replication,以下是Streaming Replication的搭建步骤:Master配置Step 1 .更改用户postgres和repl用户的密码[root@bogon ~]# su - postgres-bash-4.2$ psql -U postgrespsql (11.6)Type "help" for...原创 2020-02-07 19:21:08 · 393 阅读 · 0 评论 -
MySQL binlog
MySQL binlog只记录对数据有更改的语句。另外,二进制日志是由事务组成,只有完整的事务被记录在上面。The server creates a new file in the series each time it starts or flushes the logs. The server also creates a new binary log file automatically...原创 2020-02-04 12:32:27 · 228 阅读 · 0 评论 -
MySQL权限
MySQL 5.7tabledescriptionuserUser accounts, global privileges, and other nonprivilege columns.dbDatabase-level privileges.tables_privTable-level privileges.column_privColumn-le...原创 2019-11-04 13:20:16 · 106 阅读 · 0 评论 -
InnoDB锁实例场景
Select事务A选取id大于100的行事务B删除id大于100的行可以看到成功了,但是事务A因为MySQL的MVCC机制依然可以看到大于100以上的IDInsertInsert语句设置的是Index-record锁,不是Next-key锁。也就是不是范围,允许其他事务在本事务执行期间插入,只要插入的不是同一行就行。表结构依然是Ref 1里表,表很简单,只有一个主键。MySQL表...原创 2019-10-30 15:28:36 · 276 阅读 · 0 评论 -
InnoDB锁机制实验
Insert Intention Locks这种锁称为“插入意向锁”,插入意向锁对索引进行加锁(即使表没有索引,MySQL也会自动加入一个临时的)。在下面的例子中,建立一个表,在大于100的索引上加个锁,其他事务在本事务持续期间,不得插入大于100的ID: CREATE TABLE child (id int(11) NOT NULL, PRIMARY KEY(id)) ENGINE=Inn...原创 2019-10-30 09:52:06 · 217 阅读 · 1 评论 -
MySQL GTID-based Replication配置方法
注意防火墙问题,使用firewalld添加端口3306,或者禁止firewalld# 禁止防火墙服务或者systemctl stop firewalld#或者firewall-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --reload1.Master上新建一个repl用户,并赋予权限CREATE ...原创 2019-09-26 14:42:41 · 351 阅读 · 1 评论 -
优化MySQL文件的大小
以下只针对InnoDB引擎,而且[innodb_file_per_table]是打开的innodb_file_per_table可以使非系统表的数据放到单独的.ibd文件中,加入发现表的.ibd文件过大,可以使用Optimize Table来优化数据表。当Optimize表的时候,Mysqld会创建一个临时文件,将全部未删除数据导入进去。但是ibdata文件是没有办法缩小的,参见链接...原创 2019-09-08 20:32:09 · 337 阅读 · 0 评论 -
MySQL备份和容灾恢复
备份分为物理备份和逻辑备份物理备份:属性值速度快移植性问题只能在相同硬件架构机器间移植备份背景mysqld服务停止逻辑备份:属性值速度慢于物理备份输出文件大特点查询数据库备份备份粒度全库,单库,单表移植性问题无...原创 2019-09-06 16:42:51 · 1228 阅读 · 0 评论 -
持久化对象-注解方式
持久化(persistent)对象简单来说就是把领域模型对象存储到数据库中,这个过程称之为持久化。现今大行其道的ORM框架——Hibernate,JPA(Java Persisitence API)简化了使用JDBC书写SQL语句于数据库进行交互的方法。对持久化对象进行了比较合理的处理。Hibernate可以利用注解方式配置对象注解 Annotation模式注解规范定义文档:JSR 1...原创 2018-04-12 14:16:44 · 1165 阅读 · 0 评论 -
Spring Data JPA 基础
Spring Data JPA能够为你写一些实现:Spring Data JPA配置XML配置方法:<jpa:repositories base-package=”com.oneslideicywater.repository”>Java 配置方法//JPA Java配置方法@Configuration@EnableJpaRepositories(b...原创 2018-04-22 15:39:27 · 476 阅读 · 0 评论 -
JPA事务
事务是一系列持久化动作的集合,如果事务成功,则更改保存;如果事务失败,则 事务回滚;无论处于任何一种状态,数据保持干净与一致。 事务具有隔离性,原子性,耐久性,并发操作的正确性。普通JDBC事务事务在JDBC实现是通过下面方式: setAutoCommit(false); commit(); rollback();这种方式是一种低伸缩性(scalability...翻译 2018-04-12 22:20:46 · 989 阅读 · 0 评论 -
事务隔离级别&级别设置
SQL ANSI 定义了几个事务的隔离级别,隔离级别越高,安全性越好,同时,应用的伸缩性和性能越差。隔离级别是根据允许的并发危险现象区分的。常见的并发危险现象以下是一个列表: 问题类型 英文名称 描述 更新丢失 lost update 两个事务更新冲突 被修改读 dirty read 脏读太难听,已读取数据事务进行时间被更改 不...原创 2018-04-13 10:35:44 · 2442 阅读 · 0 评论 -
乐观锁原理
设定隔离级别式最粗暴简单的方式,一棒子打死一群事务,这会使应用的伸缩性被打折扣。但是,Java持久化依靠乐观锁能够让你获得额外的锁保护加给需要的事务。乐观锁 大多数应用的数据库连接级别为read-committed 这会出现不一致读的现象,这可以用一张图来表达这种问题:不一致读现象: TA事务在末尾提交,TB在TA执行期间对同一数据“蓝色球”进行更改,由于TA取出的值为旧值,造成...原创 2018-04-13 23:29:59 · 1177 阅读 · 0 评论 -
Hibernate映射基本数据类型
ORM的核心就是对象关系映射,所以弄清楚对象和数据库之间的关系至关重要。 这是我最近读文档和书的一些笔记,分成几个合理的部分,这是第一篇!后面的文章都会在类别ORM中进行发布!@Entity注解的实体对象中的属性,在持久化到数据库的过程中,要经过转换为Hibernate类型,在转换为JDBC类型,以下是基本类型的转换: Hibernate类型 JDBC类型 J...翻译 2018-04-27 22:17:55 · 280 阅读 · 0 评论 -
Hibernate映射枚举类
有一个枚举类PhoneLabel public enum PhoneLabel{ IPhone,HuaWei; }引用枚举类也非常简单: public class Phone{ @Id private long id; @Enumerated(EnumType.ORDINAL)//||STRING private Pho...翻译 2018-04-27 22:28:09 · 292 阅读 · 0 评论 -
HIbernate映射LOB
映射LOB对象在Hibernate中有一个固定的模式,就是使用大对象代理。模式都是一样的,映射Lob对象只需要在属性上注解@Lob.经常网站上需要存储图片或者长消息,会使用Blob和Clob这两个对象,一个是二进制的,一个是字符序列。下面存储用户资料的头像实体@User中 @Entitypublic class User{ @Id private long id; ...原创 2018-04-27 22:45:46 · 473 阅读 · 0 评论 -
事务性业务解决方案--材料收集&整理
容器如Spring和EJB都流行使用声明式事务,在方法上用注解来实现业务中事务控制声明式事务什么是声明式事务?Container Managed Transactions,简称CMT,容器管理的事务。容器负责管理事务的开始,提交和回滚。开发者只需要去指定事务的行为就行了!事务属性指定事务的行为,行为包括以下几种以下用A方法来代表被事务相关注解注解的方法Required(De...翻译 2019-03-06 20:38:37 · 252 阅读 · 0 评论 -
MySQL架构图解
这个博客记录了MySQL 5.7的物理和逻辑架构,还有其组件。在这个帖子中,我会尝试用图去说明SQL语句的执行流程和数据处理流程。MySQL的架构具备灵活性,因为它把不同的存储引擎作为插件。因此,MySQL的架构和行为也会随着存储引擎的改变而改变。我们重点讨论InnoDB,因为它是MySQL的默认存储引擎。MySQL物理架构配置文件auto.cnf : 包含 server_uuid...翻译 2019-03-11 15:39:02 · 30775 阅读 · 1 评论 -
高性能MySQL读书笔记
数据类型整数类型类型位数TINYINT8SMALLINT16MEDIUMINT24INT32BIGINT64int(1) 和int(28)存储的位数相同,mysql不会限制值的合法范围。VARCHAR存储格式分为两个部分:字符串和字符串长度,当遇到以下情况使用VARCHAR1.字符串最大长度比平均长度大很多2.列...原创 2019-03-29 14:56:21 · 103 阅读 · 0 评论 -
windows安装MySQL 8.0
MySQL官网下载文件:连接:https://dev.mysql.com/downloads/mysql/编写Option files在mysql的解压目录的根目录创建my.ini文件,打开记事本,选择另存为,将文件编码格式改为ANSI,并将保存类型改为所有文件。在my.ini里配置Mysql存放数据库数据的目录和安装根目录等信息。[mysqld]# set basedir t...原创 2019-03-23 21:25:52 · 185 阅读 · 0 评论 -
MySQL实验记录
查看表结构describle table_name;最后一个插入的ID select @last:=last_insert_id()为表增加外键约束 ALTER TABLE score ADD CONSTRAINT FOREIGN KEY(student) REFERENCES student(id);MySQL references仅是表示这个字段引用其...原创 2019-03-27 19:24:40 · 417 阅读 · 0 评论 -
MySQL Replication
所有更新都发生在master上,而读操作发生在slave上。这是一种功能解耦,从而使得master只专注于更新状态,slave可以从事实时数据分析,将master 读I/O负载分离出来同步方法二进制日志传统方法,slave请求master的二进制日志和位置全局事务ID (GTID)GTIDs(global transaction identifiers)不需要二进制日志,只要Ma...原创 2019-08-30 14:47:35 · 331 阅读 · 0 评论 -
悲观锁
防止不一致读,你需要升级到更高的隔离级别。这就是为什么使用悲观锁! Session session=sessionFactory.openSession(); Transcation transaction=session.beginTransaction();//第一次读 Entry entry=(Entry)session.get(Entry.class,1); //第二次读...翻译 2018-04-14 21:45:27 · 439 阅读 · 0 评论