随笔分类 - 数据库
摘要:转载自 扎心一问:分库分表就能无限扩容吗? 像我这样的菜鸟,总会有各种疑问,刚开始是对 JDK API 的疑问,对 NIO 的疑问,对 JVM 的疑问,当工作几年后,对服务的可用性,可扩展性也有了新的疑问,什么疑问呢?其实是老生常谈的话题:服务的扩容问题。 # 正常情况下的服务演化之路 让我们从最初
阅读全文
摘要:转载自 百度开源的分布式唯一ID生成器UidGenerator,解决了时钟回拨问题 UidGenerator是百度开源的Java语言实现,基于Snowflake算法的唯一ID生成器。而且,它非常适合虚拟环境,比如:Docker。另外,它通过消费未来时间克服了雪花算法的并发限制。UidGenerato
阅读全文
摘要:转载自 Java面试之数据库面试题 1、触发器的作用? 触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器
阅读全文
摘要:转载自 数据库的最简单实现 所有应用软件之中,数据库可能是最复杂的。MySQL的手册有3000多页,PostgreSQL的手册有2000多页,Oracle的手册更是比它们相加还要厚。 但是,自己写一个最简单的数据库,做起来并不难。Reddit上面有一个帖子,只用了几百个字,就把原理讲清楚了。下面是我
阅读全文
摘要:转载自 ACID中C与CAP定理中C的区别 ACID和CAP定理中都有C,代表Consistent一致性,很多人容易将这两个C混为一谈,其实这两个一致性是有区别的。 事务的定义是一系列操作要么全部成功,要么全部不成功,数据库的事务机制是通过ACID实现的,数据库ACID的具体定义见这里,ACID中的
阅读全文
摘要:转载自 最通俗易懂的乐观锁与悲观锁原理及实现 一、乐观锁 总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS操作实现。 version方式:一般是在数据表中加上一个数据版本
阅读全文
摘要:转载自 独占锁、共享锁、更新锁,乐观锁、悲观锁 1、锁的两种分类方式 (1)从数据库系统的角度来看,锁分为以下三种类型: 独占锁(Exclusive Lock) 独占锁锁定的资源只允许进行锁定操作的程序使用,其它任何对它的操作均不会被接受。执行数据更新命令,即INSERT、 UPDATE 或DELE
阅读全文
摘要:转载自 聚簇索引和聚簇索引介绍 一. 什么是索引和建立索引的好处 什么是索引 在数据库中,索引的含义与日常意义上的“索引”一词并无多大区别,与书中的索引一样,数据库中的索引使您可以快速找到表中的特定信息。索引包含从表中一个或多个列生成的键,以及映射到指定数据的存储位置的指针,也就是说索引由键和 指针
阅读全文
摘要:转载自 彻底理解数据库事务 事务 事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在计算机术语中,事务通常就是指数据库事务。 概念 一个数据库事务通常包含对数据库进行读或写的一个操作序列。它的存在包含有以下
阅读全文
摘要:转载自 微服务化的数据库设计与读写分离 数据库永远是应用最关键的一环,同时越到高并发阶段,数据库往往成为瓶颈,如果数据库表和索引不在一开始就进行良好的设计,则后期数据库横向扩展,分库分表都会遇到困难。 对于互联网公司来讲,一般都会使用Mysql数据库。 一、数据库的总体架构 我们首先来看Mysql数
阅读全文
摘要:转载自 解读分库分表中间件Sharding-JDBC 编者按】数据库分库分表从互联网时代开启至今,一直是热门话题。在NoSQL横行的今天,关系型数据库凭借其稳定、查询灵活、兼容等特性,仍被大多数公司作为首选数据库。因此,合理采用分库分表技术应对海量数据和高并发对数据库的冲击,是各大互联网公司不可避免
阅读全文
摘要:转载自 [初级]深入理解乐观锁与悲观锁 在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。 乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。 无论是悲观锁还是乐观锁
阅读全文
摘要:转载自 千万条数据,Stack Overflow是如何实现快速分页的 Stack Overflow 在分页机制中使用页码代替偏移量,页码指向基于 LIMIT 和 OFFSET 的查询。假设要对 1000 万条记录进行分页,跳到最后一页会非常慢,但 Stack Overflow 还是想办法实现了快速分
阅读全文
摘要:转载自 Mycat - 数据库分库分表中间件,国内最活跃的、性能最好的开源数据库中间件 Mycat是什么 Mycat - 数据库分库分表中间件,国内最活跃的、性能最好的开源数据库中间件! 一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、可以替代MySQL的加强版数据库一个可以视为M
阅读全文