分布式数据库是不同的
今天的话题有两层含义,第一层是说相对于我们所熟知的集中式数据库来说,分布式数据库是与之不同的。在做数据库选型的时候,我们要充分的了解其间的不同,才能做出较为科学的决策。我想很多数据库从业人员都了解其中的不同,不幸的是,他们不是数据库选型的决策者,大多数决策者并不了解这一点。
MySQL:参数Open_tables/Open_table_definitions和table cache的浅析
在打开一个表准备访问数据的时候,通常要先打开其数据字典,其中包含了字段信息,索引信息,默认值,字符集,统计数据,自增字段,自增锁等等信息,其中某些在MySQL层,有些在Innodb层(比如统计信息),又比如字段类型在MySQL层和Innodb层的表示是不同的,实际上这包含3层信息:
一次 Redis 主从切换,导致数据丢失并陷入只读状态故障
最近一组业务 Redis 数据不断增长需要扩容内存,而扩容内存则需要重启云主机,在按计划扩容升级执行主从切换时意外发生了数据丢失与 master 进入只读状态的故障,这里记录分享一下。
MySQL 自适应哈希索引(一)构造
曾经优化慢查询时,经常在日志中看到 truncate,当时一直疑惑 truncate 为什么会慢。 转到数据库方向之后,又碰到过几次 truncate 执行时间过长,导致 MySQL 短暂卡住的问题。 经过源码分析和同事测试验证,发现这几次的问题都跟自适应哈希索引有关,所以,深入研究下自适应哈希索引就很有必要了。
优化 SQL 体验:五款 AI 驱动工具助力 SQL 查询
SQL AI 工具能够极大提高跟数据和数据库打交道人员(e.g. 数据分析师、数据科学家、数据库管理员、开发者)的效率和生产力,比如可以根据自然语言输入自动生成 SQL 查询(非技术用户也能轻松访问和分析数据了!)、优化查询性能、加强数据探索。如果你想开始学习 SQL,这也是个极佳的途径。
技术分享 | MySQL5.7 与 MariaDB10.1 审计插件兼容性验证
在使用 CentOS Linux release 7.5.1804 (Core) 虚机为 MySQL 5.7.34 安装 MariaDB 审计插件时发现:当使用通过解压 mariadb-10.1.48-linux-glibc_ 214-x86_64.tar.gz 获得的 server_audit.so 时,MySQL 会出现 Crash 的情况,通过手动重启 MySQL 也会马上发生 Crash。由此不禁思考:
PostgreSQL PG16 逻辑复制在STANDBY 上工作 (译)
Postgres 16刚刚发布了测试版,我对其中的新功能非常兴奋。该新功能允许从待命服务器进行逻辑复制,用户可以: 从只读的待命服务器创建逻辑解码 减轻主服务器的工作负载 采用新的方式为需要在多个系统之间进行数据同步或审核的应用程序提供高可用性 第二个相关且令人兴奋的新功能是,在给定的待命服务器上的复制槽将持久化到将该待命服务器提升为主服务器。这意味着在主服务器故障并将待命服务器提升为主服务器时,复制槽将持久存在,并且之前的待命服务器订阅者不会受到影响。
美团面试:宕机了,Redis 如何避免数据丢失?
Redis 持久化机制属于后端面试超高频的面试知识点,老生常谈了,需要重点花时间掌握。即使不是准备面试,日常开发也是需要经常用到的。
简单了解 TiDB 架构
聊着聊着,就聊到了分布式数据库。其对数据的存储方式就类似于 Redis Cluster 这种,不管你给我灌多少的数据,理论上我都能够吞下去。这样一来也不用担心后期数据量大了需要进行分库分表。
别再分库分表了,试试TiDB!
TiDB 是一个分布式 NewSQL 数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。
搞明白什么是零拷贝,就是这么简单
拷贝说的是计算机里的 I/O 操作,也就是数据的读写操作。计算机可是一个复杂的家伙,包括软件和硬件两大部分,软件主要指操作系统、驱动程序和应用程序。硬件那就多了,CPU、内存、硬盘等等一大堆东西。 这么复杂的设备要进行读写操作,其中繁琐和复杂程度可想而知。
MGR 主备集群实现异步连接故障转移
MySQL 8.0.22 开始,支持异步连接故障切换机制,在现有主从复制连接失败后,自动建立到新主的异步复制连接。
MySQL:datetime字段类型的存储和解析
最近处理一个死锁问题的时候,看到datetime的在show engine中看到的格式大概如下, 0: len 5; hex 99b0940000; asc 那么如何将其变为日期格式的可读数据呢?下面就来看看如何解析将其变为可读的形式,这在某些情况下确认某一行数据还是比较重要的。
一次非常有意思的 SQL 优化经历:从 30248.271s 到 0.001s
今天分享一篇SQL优化的文章~
MYSQL 为什么MGR OR INNODB CLUSTER 没有成为主流的MYSQL 高可用方式
提到这个问题本身,很多年前很多人都看好MYSQL的 MGR ,mysql group replicaiton,到后来演进的innodb cluster 的解决方案,但是截至到现在,MYSQL 8.1 的版本历经了超过5年的发展,还是没有发展起来,为什么,一个看上去都很好的先进的解决方案,他不行,或者从来就没有,行过。
被字节拷打了!基础还是太重要了...
今天分享一篇一位同学去字节面试的实习面经,技术栈是java,投了go后端岗位,主要拷打了 redis+mysql+网络+系统+java+算法,面试问题主要集中在 mysql、redis、网络这三部门,因为面试官是搞 go 的,java 只是随便问了几个题目。
Redis Sorted Set 底层实现原理深度解读与排行榜实战
Sorted Sets 与 Sets 类似,是一种集合类型,集合中不会出现重复的数据(member)。区别在于 Sorted Sets 元素由两部分组成,分别是 member 和 score。
全方位对比 Postgres 和 MySQL (2023 版)
根据 2023 年的 Stack Overflow 调研 (https://survey.stackoverflow.co/2023/) ,Postgres 已经取代 MySQL 成为最受敬仰和渴望 (the most admired, desired) 的数据库。
高逼格的 SQL 写法:行行比较
行行比较不是新特性,而是很早就存在的基础功能
技术分享 | 又是一条慢 SQL 改写,拿捏!
开发同学丢了一条 SQL 过来。“马哥,看看这个 SQL 能否优化,业务那边反馈很慢!”看了下执行计划+表结构,索引都没问题。那到底是怎么回事呢?咱们一起来瞧瞧。