SequoiaDB

MySQL数据库优化

强颜欢笑 提交于 2020-05-01 18:16:41
MySQL性能 最大数据量 最大并发数 查询耗时0.5秒 实施原则 数据表设计 数据类型 避免空值 text类型 索引优化 索引分类 优化原则 SQL优化 分批处理 不做列运算 避免Select * 操作符<>优化 OR优化 IN优化 LIKE优化 JOIN优化 LIMIT优化 其他数据库   博主负责的项目主要采用阿里云数据库MySQL,最近频繁出现慢SQL告警,执行时间最长的竟然高达5分钟。导出日志后分析,主要原因竟然是 没有命中索引和没有分页处理 。其实这是非常低级的错误,我不禁后背一凉,团队成员的技术水平亟待提高啊。改造这些SQL的过程中,总结了一些经验分享给大家,如果有错误欢迎批评指正。 MySQL性能 最大数据量    抛开数据量和并发数,谈性能都是耍流氓 。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 文件系统 单文件大小限制 FAT32 最大4G NTFS 最大64GB NTFS5.0 最大2TB EXT2 块大小为1024字节,文件最大容量16GB;块大小为4096字节,文件最大容量2TB EXT3 块大小为4KB,文件最大容量为4TB EXT4 理论可以大于16TB 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置

从MongoDB IPO谈谈企业级数据库市场

旧时模样 提交于 2020-04-27 17:59:34
10月20日,NoSQL数据库MongoDB在NASDAQ正式 IPO,当日收于 32.07 美元。截至10月27日,MongoDB报收30.89美元,公司市值保持在15亿美元左右,可以说是分布式数据库的“第一股”。 作为同样数据库行业的一员,也是分布式数据库产品厂商,巨杉一直关注MongoDB的发展。基于十多年的行业经验以及我们公司6年以来的一些实际经验,我也来谈谈我们对于MongoDB IPO的一些看法。 数据库市场潜力仍然巨大 MongoDB成功IPO,并且市值维持在较高水平。这一消息对业界各个数据库厂商都是一剂强心针。此前,数据库商业化市场一直被Oracle这样的老牌产品占据主导,一直没有分布式数据库产品能向资本市场展示这个新的市场的真正规模和影响力。 根据Gartner 2017年对于企业级软件市场规模的预测报告(Gartner Enterprise Software Forecast 2017Q1),数据库全球市场规模在2017年将突破370亿美元,并预计在2021年会突破500亿美元的规模。 2017全球数据库市场规模预测 对于中国市场,同样根据报告显示,2017年中国数据库市场预计规模将超过15亿美元。 2017 中国数据库市场规模预测 如此大的市场,加上MongoDB成功IPO,可以是说资本界和软件业界对于数据库整体市场的认可。 分布式数据库是大数据架构生态的核心

SequoiaDB 巨杉数据库

帅比萌擦擦* 提交于 2020-04-26 14:55:29
传统单点数据库的容量瓶颈,仅仅是分布式数据库所解决的问题之一。更重要的是在未来微服务化应用开发以及云化平台的趋势下,应用不再以“烟囱式”的中间件加数据库模式进行构建,而是采用数千甚至上万的微服务程序构建成的复杂网状模型。因此,分布式数据库需要满足以下能力,才能够满足上层应用的弹性扩展、高并发、高吞吐量、与灵活敏捷的需求。 在这些技术需求驱动下,分布式数据库核心技术能力分为两个方面,一方面是对传统技术的兼容,包括: 完整的 ACID 支持,事务和一致性保证; SQL 的完整支持,传统数据库如 MySQL/PostgreSQL 的语法完全兼容。 另一方面,则是技术创新,包括: 分布式与扩展性,应对数据量的变化,实现存储层和计算层的弹性扩展; 多模式访问接口,支持多类型数据管理和多种模式的访问接口; HTAP 交易/分析混合处理能力,复杂业务需求下,实现数据的物理隔离,互不干扰。 作为一款金融级分布式关系型数据库,SequoiaDB 巨杉数据库的分布式数据库架构和面向微服务的云化产品形态,已经帮助包括民生银行、恒丰银行在内的多家大型金融客户实现了大量业务系统的底层数据库云化转型升级。 目前,巨杉数据库在银行生产系统单机群最大物理节点数达到 135 个,单集群最大存储容量超过 2.1 PB,单集群最大管理数据条数 1318 亿条。 SequoiaDB

巨杉Tech | SequoiaDB的同城双中心容灾实践

为君一笑 提交于 2020-04-26 11:32:51
1 需求背景 随着数据的大集中,银行纷纷建设了负责本行各个业务处理的生产数据中心,数据中心因其负责了全行的各个业务系统,所以其并发业务负荷能力和不间断运行是评价一个数据中心成熟与否的关键性指标。 近年来,随着网上银行、手机银行等各种互联网业务的迅猛发展,银行数据中心的业务压力成倍增加,用户对于业务访问质量的要求也越来越高,保障业务系统7*24小时连续运营并提升用户体验成为信息部门的首要职责。 为适应互联网业务的快速增长,保障银行各业务安全稳定的不间断运行,提高市场竞争力,同时符合监管机构的要求,同城双中心、两地三中心正在成为银行的共同选择。 2 发展趋势 多数据中心的建设需要投入大量资金,其项目周期往往很长,涉及的范围也比较大。从技术上来说,要实现真正的意义上的双活,就要求网络、应用、数据库都要双活。就现阶段来看,大多数客户的多数据中心的模型可以归纳为以下几种: 主备容灾 正常情况下只有主数据中心投入运行,备数据中心处于待命状态。发生灾难时,灾备中心可以短时间内恢复对外数据访问,减轻灾难带来的损失。这种模式只能解决业务连续性的需求,单用户无法就近快速接入。灾备中心投资巨大且运维成本高昂,正常情况下灾备中心不对外提供数据服务,资源利用率偏低,造成巨大浪费。 互备方式 客户根据业务分类或者针对不同的应用设置不同的数据访问策略,部分业务以数据中心A为主,数据中心B为热备

巨杉内核笔记(一)| SequoiaDB 会话(session)简介

狂风中的少年 提交于 2020-04-08 10:56:48
SequoiaDB 会话(session)简介 会话(Session)的基本概念 容易弄混淆的两个概念是会话与连接。 通俗来讲,会话 (Session) 是通信双方从开始通信到通信结束期间的一个上下文( Context ) 。这个上下 文是一段位于服务器端的内存:记录了本次连接的客户端机器、通过哪个应用程序、哪个用户登录等信息 。 而连接( Connection ): 连接是从客户端到数据库实例的一条物理路径。连接可以在网络上建立,或者在本机通过 IPC 机制建立。通常会在客户 端进程与一个专用服务器或一个调度器之间建立连接。 SequoiaDB 中的会话设计 SequoiaDB 中的会话有很多种,不同的会话对应不同的服务。会话的主要任务是处理通信的对端发过来的请求。各种类型的会话能处理的请求不一样。 通信平面 为了提供不同类型的服务,并使各服务之间隔离, SequoiaDB 的节点提供了多个通信平面。简单来讲,一个通信平面对应一个服务端口,不同 的端口提供不同类型的服务,这也就是在安装 SequoiaDB 时,要求一定范围内的端口号预留的原因。 SequoiaDB 中当前提供了如下几个通信平面: local 平面(local service): 使用基础服务端口号 svcname repl 平面(repl service):使用端口号 svcname + 1 shard 平面

巨杉内核笔记 | 会话(Session)

三世轮回 提交于 2020-04-08 10:49:12
SequoiaDB 巨杉数据库是一款金融级分布式关系型数据库,坚持从零开始打造分布式开源数据库引擎。“内核笔记系列”旨在分享交流 SequoiaDB 巨杉数据库引擎的设计思路和代码解析,帮助社区用户深入理解 SequoiaDB 的实现原理,共建开源开放的数据库技术生态。 01 基本概念 会话与连接是两个容易混淆的概念。会话(Session) 指是通信双方从开始通信到通信结束期间的一个上下文(Context)。这个上下文是一段位于服务器端的内存,记录了本次连接的客户端机器,通过哪个应用程序和哪个用户登录等信息。而连接是指从客户端到数据库实例的一条物理路径。连接可以在网络上建立,也可以在本机通过IPC机制建立。通常会在客户端进程与一个专用服务器或一个调度器之间建立连接。 02 SequoiaDB 中的会话设计 分布式数据库 SequoiaDB 的集群通常由数据节点、协调节点和编目节点组成,集群内的不同节点间存在多种类型的连接。因此 SequoiaDB 中存在多种会话,且不同的会话对应不同的服务。会话的主要任务是处理通信的对端发来的请求。 集群中典型的会话结构如下图。 协调节点监听客户端发起的连接请求,连接建立后创建一个 coord session,即协调节点会话,之后便由这个会话处理对应的客户端发起的所有请求。coord session 在接收到客户端发来的处理请求后

【巨杉数据库SequoiaDB】巨杉 Tech | 并发性与锁机制解析与实践

微笑、不失礼 提交于 2020-03-25 01:09:23
01 概述 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。 OLTP 场景下通常要求具有很高的并发性。并发事务实际上取决于资源的使用状况,原则上应尽量减少对资源的锁定时间,减少对资源的锁定范围,从而能够尽量增加并发事务的数量,那么影响并发的因素有哪些呢?本文将从巨杉分布式数据库本身的机制以及隔离级别、数据库锁、参数、及实际例子进行详解,读完本文将对巨杉数据库并发性与锁机制有一个初步的了解。 02 隔离级别与并发性 在单用户环境中,每个事务都是顺序执行的,而不会遇到与其他事务的冲突。但是,在多用户环境下,多个事务并发执行。因此每个事务都有可能与其他正在运行的事务发生冲突。有可能与其他事务发生冲突的事务称为交错的或并行的事务,而相互隔离的事务称为串行化事务,这意味着同时运行它们的结果与一个接一个连续地运行它们的结果没有区别。在多用户环境下,在使用并行事务时,会发生四种现象: 丢失更新:这种情况发生在两个事务读取并尝试更新同一数据时

【巨杉数据库SequoiaDB】巨杉 Tech | SequoiaDB SQL实例高可用负载均衡实践

不羁岁月 提交于 2020-03-25 00:59:08
1 前言 在应用程序中,应用配置连接的数据库IP地址和端口号都是固定一个的,当所属IP地址的服务器宕机后,需要人为手工更改IP地址切换数据库服务器。同时当应用接收到成千上万的并发 http 请求时,会导致服务器消耗大量系统资源,轻则响应速度降低,严重的甚至会引发宕机。 为了充分合理的利用服务器资源,提高数据服务的性能和稳定性,在较低成本的前提下,保证在部分服务器宕机或发生故障的情况下不影响业务的正常运作。本文主要介绍 Nginx+Keepalived 连接 SequoiaDB -MySQL 实例的高可用方案与实践。 2 SequoiaDB 数据库介绍 SequoiaDB 巨杉数据库是一款完全自研的金融级分布式数据库产品,采用计算与存储分离架构,由数据库实例层和数据库存储引擎层组成。数据库实例层负责解析请求并转发至数据库存储引擎层处理,同时会将数据库存储引擎层的响应结果反馈给应用层,数据库实例层支持包括针对结构化数据的 MySQL 实例、PostgreSQL 实例、SparkSQL 实例,以及针对非结构化数据的 S3 和 PosixFS 文件系统的对象存储实例实例,而数据库存储引擎层是由 SequoiaDB 巨杉数据库的协调节点、编目节点和数据节点组成。该数据库集群架构能方便用户实现由传统数据库到巨杉数据库的无缝迁移,减少应用开发者的开发和学习成本。 2.1 SequoiaDB

【巨杉数据库SequoiaDB】限额开放!巨杉数据库中级工程师认证计划正式开启!

China☆狼群 提交于 2020-03-25 00:16:07
课程背景和规划介绍 巨杉大学的学习和认证包括SCDA(巨杉数据库认证技术专员),SCDP(巨杉数据库中级工程师认证),SCDE(巨杉数据库高级工程师认证),SCDD(巨杉数据库认证开发者)等计划,未来还将持续推出针对行业用户、数据库运维、开发者和开源社区爱好者更多学习计划,共同拓展行业广度和技术深度。 巨杉大学的 SCDP(巨杉数据库中级工程师认证)计划,直接上手操作使用,直观体验分布式数据库功能技术。在线交互学习测试,根据代码验证测试结果,帮助大家快速掌握分布式数据库运维管理。 Talk is cheap,show your code! 分布式数据库进阶:在线动手操作分布式数据库,代码交互和学习测试,快速掌握分布式数据库使用 全功能快速掌握:内容覆盖分布式数据库所有功能亮点,无需复杂部署配置,在线交互快速掌握 分布式数据库进阶:进阶技术课程,突出分布式数据库优势点,操作场景结合应用实践,快速成为分布式数据库DBA 丰富学习支持:学习认证采用小班指导,辅助材料帮助学习,更多维度帮助用户学习 课程参与方式 目前 SCDP中级工程师认证 以学习班模式按批次进行学习考试,每期40人,添加小助手报名,我们会根据班次安排进行课程通知。 报名参与方式: 注册并登录巨杉数据库官网,在 SCDP 课程页面点击考试申请 添加小助手“杉杉”or“快乐的杉杉” 备注(“SCDP”,或“中级认证”)

【巨杉数据库SequoiaDB】限额开放!巨杉数据库中级工程师认证计划正式开启!

ε祈祈猫儿з 提交于 2020-03-25 00:11:49
课程背景和规划介绍 巨杉大学的学习和认证包括SCDA(巨杉数据库认证技术专员),SCDP(巨杉数据库中级工程师认证),SCDE(巨杉数据库高级工程师认证),SCDD(巨杉数据库认证开发者)等计划,未来还将持续推出针对行业用户、数据库运维、开发者和开源社区爱好者更多学习计划,共同拓展行业广度和技术深度。 巨杉大学的 SCDP(巨杉数据库中级工程师认证)计划,直接上手操作使用,直观体验分布式数据库功能技术。在线交互学习测试,根据代码验证测试结果,帮助大家快速掌握分布式数据库运维管理。 Talk is cheap,show your code! 分布式数据库进阶:在线动手操作分布式数据库,代码交互和学习测试,快速掌握分布式数据库使用 全功能快速掌握:内容覆盖分布式数据库所有功能亮点,无需复杂部署配置,在线交互快速掌握 分布式数据库进阶:进阶技术课程,突出分布式数据库优势点,操作场景结合应用实践,快速成为分布式数据库DBA 丰富学习支持:学习认证采用小班指导,辅助材料帮助学习,更多维度帮助用户学习 课程参与方式 目前 SCDP中级工程师认证 以学习班模式按批次进行学习考试,每期40人,添加小助手报名,我们会根据班次安排进行课程通知。 报名参与方式: 注册并登录巨杉数据库官网,在 SCDP 课程页面点击考试申请 添加小助手“杉杉”or“快乐的杉杉” 备注(“SCDP”,或“中级认证”)