互联网软件本身具有快速迭代、持续交付等特点,加上数据库的表结构(DDL)发布无法做到灰度发布,且回退困难、试错成本高,一个稳定可靠的数据库发布系统对于互联网公司显得尤其重要。本文将介绍携程MySQL数据库发布系统从无到有,版本不断迭代的演进之路,希望对读者有所参考和帮助。
当我们开发应用时,访问数据库是一种常见的需求。 基本上所有需要持久化的数据,一般都存储在数据库中,例如常用的开源数据库 MySQL。 在今天的文章中,我将盘点一下 Java 应用访问数据的几种方式。
请解释数据库中的MVCC(多版本并发控制)机制,并说明其在MySQL InnoDB中的具体实现方式
在分布式系统中,缓存和主体数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。下面我分几种方案阐述。
功能强大应用广泛的开源数据库系统
以图搜图在生活中有着广泛的应用, 当我们在电视上看到有人穿着一件美丽的裙子或者帅气的球鞋也想拥有时, 我们可以拍张照片然后打开淘宝然后上传照片就可以快速的找到这个商品. 我们看到一张电影截图想知道出处的时候只要将图片粘贴到百度或者谷歌的图搜框中就可以找到相关电影的信息. 以图搜图还可以通过照片在海量的人物相册中快速的找到想要找的目标. 当您在使用百度谷歌等搜索引擎的以图搜图功能的时候的时候是否觉得这种"黑科技"遥不可及呢?
之前有不少刚入坑 Java 的粉丝留言,想系统的学习一下分库分表相关技术,可我一直没下定决心搞,眼下赶上公司项目在使用 sharding-jdbc 对现有 MySQL 架构做分库分表的改造,所以借此机会出一系分库分表落地实践的文章,也算是自己对架构学习的一个总结。
用关系型数据库一定多多少少会用到 Join 操作。常见的 Join 有 Nested-Loop Join,Hash Join,Sort Merge Join 等等。实际在 OLTP 场景中,最常用的就是基于索引点查的 Index Nested-Loop Join,这样的 Join 往往能在极短的时间内返回,相信这也是大多数开发同学对 Join 的感受。
Elasticsearch主要功能是什么,不同的场景有不同的定位,在日志场景我们可以用ELK生态搭建日志分析系统,在搜索领域ES是当前最热门的搜索引擎。在大数据领域,ES可以对标Hbase提供海量日志的数据仓库;在数据库领域ES可以作为查询分析型的分析型数据库使用。ES已经成为了全能型的数据产品,在很多领域越来越受欢迎,本文旨在从数据库领域分析ES的使用。
在工作中,如果我们想提高一条语句查询速度,通常都会想对字段建立索引。但是索引并不是万能的。建立了索引,并不意味着任何查询语句都能走索引扫描。
在现代应用编码中,从数据库里面find出来,进行一些业务逻辑操作,最后再save回去。
Redis 作为稳居世界排名第一的 KV 内存数据库,同时也是最受欢迎的开源缓存产品,在互联网行业有着非常广泛的应用,是应对高并发,大流量,低延迟业务场景的不二选择。
在当前的技术环境下,了解如何针对云端扩展 Node.js 应用程序也很重要。大多数企业都转而采用云存储,因为服务器托管成本高昂,而且可能会导致可用性问题。通过使用云计算,您只要为所需的云服务买单,因此就不会因无力承受的昂贵硬件而望洋兴叹。
MySQL 事务隔离级别、事务特性和 InnoDB 锁。数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务的使用是数据库管理系统区别文件系统的重要特征之一。
谈到事务隔离级别,开发同学都能说个八九不离十。脏读、不可重复读、RC、RR...这些常见术语也大概知道是什么意思。但是做技术,严谨和细致很重要。如果对事务隔离级别的认识,仅仅停留在大概知道的程度,数据库内核研发者可能开发出令用户费解的隔离级别表现,业务研发者可能从数据库中查出与预期不符的结果。
ClickHouse是近年来备受关注的开源列式数据库,主要用于数据分析(OLAP)领域。目前国内社区火热,各个大厂纷纷跟进大规模使用:内部用ClickHouse来做用户行为分析,内部一共几千个ClickHouse节点,单集群最大1200节点,总数据量几十PB,日增原始数据300TB左右。
MongoDB 分布式文件存储数据库
现在有很多种流行的关系型数据库管理系统可供选择使用。下面我们就简要介绍其中最为流行的几种,以帮助你对它们的基本特征做出比较。MySQLMySQL 是一个开源的 SQL 数据库管理系统,由瑞典公司 MySQL AB 开发。MySQL 的发音为“my ess-que-ell”,而 SQL 的发音则为“sequel”。
在上一节中,我们使用引用关系实现了归一化的数据库结构,这种引用关系也被称作手动引用,即可以手动地将引用文档的 id 保存在其他文档中。但在有些情况下,文档包含其他集合的引用时,我们可以使用数据库引用(MongoDB DBRefs)。 数据库引用 vs 手动引用我们将利用一个例子来展示如何用数据库引用代替手动引用。
dropDatabase() 方法MongoDB 的 dropDatabase() 命令用于删除已有数据库。 语法格式dropDatabase() 命令的语法格式如下: db.dropDatabase() 它将删除选定的数据库。如果没有选定要删除的数据库,则它会将默认的 test 数据库删除。 范例首先使用 show dbs 来列出已有的数据库。 >show dbslocal 0.78125GBmydb 0.23012GBtest 0.
关注时代Java