DATABASE 十一月 06, 2022

TiDB 数据库核心原理与架构 [TiDB v6](101)笔记

文章字数 14k 阅读约需 13 mins.

在线学习地址:https://learn.pingcap.com/learner/course/960001

  • TiDB 整体架构:TiDB Server、TiKV、TiFlash、PD
  • TiFlash 是 TiKV 的列存版本,并参与复制,保持数据一致
  • PD(Placement Driver) 节点记录数据在哪些 TiKV 或 TiFlash 节点上,以及全局时间戳(TSO),还会配合 TiDB Server 生成事务的唯一 ID
  • 数据分区(Region)存储(96~144mb),默认三副...
查看全文

JAVA 五月 15, 2022

使用 Alibaba Druid 进行 SQL 翻译

文章字数 12k 阅读约需 11 mins.

Alibaba Druid 是阿里云计算平台 DataWorks 团队出品,为监控而生的数据库连接池。

Apache 旗下也有一个 Apache Druid,是一个高性能的实时分析数据库。

本文提到的 Druid,指 Alibaba Druid

Druid 其实是一个 JDBC 组件库,不仅包含数据库连接池组件,还有 SQL Parser 等组件,被大量业务和技术产品使用或集成,从 GitHub 的 Start 数量(25.5k),和 Used by 数量(206k)可见一斑。

网上关于 ...

查看全文

JAVA 五月 08, 2022

MySQL 脚本转 H2

文章字数 7k 阅读约需 6 mins.

引用 MySQL 官网 的介绍:

The world’s most popular open source database

只要接触过数据库,应该就知道 MySQL,现行的两个主要版本为 5.78.0,本文主要关注通常所说的 SQL 脚本,即 SQL Statements,两个版本的文档链接如下:

H2 即 H2 Database,是一个使用 Java 编写的嵌入式的内存关...

查看全文

DATABASE 九月 19, 2021

连接池如何固定住 MySQL 的连接数

文章字数 7.5k 阅读约需 7 mins.

相比于 SQL 执行的时间(不考虑慢 SQL),创建数据库连接的操作可谓相当昂贵,频繁的打开和关闭数据库连接,会导致系统性能非常低下。连接池可以缓存已经创建的连接,在需要连接时,从连接池中获取一个空闲连接,在使用过后将连接归还连接池。

关于连接池的大小应该如何设置,可以参考 关于数据库连接池,你可能做错了

  • 配置固定数目连接池后,数据库中连接数目能保持不变
  • 数据库重启后,连接池能帮助应用自动重新创建好连接

MySQL 的 wait_timeout 变量用来控制 MySQL 主动关闭空闲连接的...

查看全文

DATABASE 九月 12, 2021

关于数据库连接池,你可能做错了

文章字数 3.9k 阅读约需 4 mins.

Oracle RWP(Real World Performance) 团队:

  1. 不能添加无数个连接至数据库
  2. 数据库的连接数在理想情况下应该是静态的,无论何时都应该是相同的值

不幸的是,如今的应用大多数建立在中间件之上,这些中间件倾向于指定动态连接池,通常是一个最小值和一个最大值。这给人们一种错觉,应用可以按需持续创建连接,并在负载消失后削减它们。事实上,这是最糟糕的事。你有能力快速创建大量连接,我们有能力破坏掉数据库的稳定性。

HikariCP 堪称上面提到的中间件界的一道光,他们建议:为了获...

查看全文

JAVA 八月 08, 2021

Flyway 实战

文章字数 7.8k 阅读约需 7 mins.

Using Liquibase with Gradle in Spring Project 中,介绍了数据库版本控制工具 Liquibase,并且总结到

面向 SQL,选择 Flyway

不面向 SQL,选择 Liquibase

如果你还在单独分发数据库变动脚本,甚至简单粗暴的将开发库直接导出并导入生产环境,建议一起来了解一下 Flyway 的用法。

Flyway 中的概念可查阅 官方文档,这里挑选一些重要的进行简单介绍。

Schema History Table

Flyway 对数据库进行版...

查看全文
0%