数据库:MySQL、SQLServer、Oracle对比
一、MySQL
优点:
软件体积小、速度快、免费开源;
跨平台;
因为是开源数据库,提供的接口支持多种语言连接操作 ;
MySQL的核心程序是采用完全的多线程编程。并且是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。
MySql拥有一个非常灵活而且安全的权限和口令管理系统。当客户与M ...
数据库优化不为人知道的阶段
面试的时候,经常会被面试官问到数据库优化方面的知识点。今天来总结一下数据库优化应该经过几个阶段,我觉得这样回答是一个比较优的答案。
0x01:SQL优化及应用程序优化
一个系统总是从小到大,所以在系统还是小型系统的时候。首先应该注重表的设计,合理使用主键、外键、索引;字段选用合适的数据类型、合适的数 ...
了解现代云架构之AWS服务器群和数据库
当今云计算技术成了主流的架构和互联网基础服务架构之一。越来越多的企业、组织和人使用云服务来实现自己的服务架构。云计算技术也是每一个IT人士需要掌握的基础技能。在云平台市场,亚马逊的AWS一枝独秀,不光发展早,技术先进,而且市场占有率也大。本文我们以AWS的云架构体系为例子说明现代云架构。
AWS服务器: ...
分布式 SQL 引擎 Apache Trafodion 宣布退役
经由 Apache Trafodion 的提交者投票决定,Apache Trafodion 正式退役。
Apache Trafodion 是一个面向 Hadoop 的 Webscale SQL-on-Hadoop 解决方案,支持 Hadoop 上的事务或操作工作负载。 Trafodion 基于 Hadoop 的可扩展性、弹性和灵活性,以提供有保证的事务完整性,使新的大数据应用程序能够在 Hadoop 上运行。2 ...
盘点分库分表中件间Mycat中的坑
一、介绍
公司最近在搞服务分离,数据切分的工作,因为订单和订单项表的数据量实在过大,而且每天都是以50万的数据量在增长,基于现状,项目组决定采用分库的方式来解决当前遇到的问题。
那具体怎么切分呢?
分库的策略其实还比较简单,主要是要确定分片的字段和策略。
最开始是想通过主键ID的奇、偶数来 ...
14个必须掌握的数据库面试题(附答案)
一、为什么使用数据索引能提高效率
数据索引的存储是 有序的
在有序的情况下, 通过索引查询一个数据是无需遍历索引记录的
极端情况下,数据索引的查询效率为二分法查询效率,趋近于log2(N)
二、B+树索引和哈希索引的区别
B+树是一个平衡的多叉树,从根节点到每个叶子节点的高度差值不超过1,而且同层级的 ...
2000 行代码,带你写一个自己的 SQL 数据库
在 C 被当做“高级语言”,雷布斯和小马哥还在写代码的年代,数据库还不是一个成熟的事物。
和很多技术从简单到复杂的发展历程不太一样,数据库首先成熟并被大规模使用的是 RDBMS(关系型数据管理系统),后来才逐渐兴起了实现相对简单,以 Redis 为代表的 KV 型的数据库。
数据库从后端的技术上看是一个算法、数据结 ...
实时监视同步数据库变更,这个框架真是神器
我们数据库中的数据一直在变化,有时候我们希望能监听数据库数据的变化并根据变化做出一些反应,比如更新对应变化数据的缓存、增量同步到其它数据源、对数据进行检测和审计等等。而这种技术就叫变更数据捕获(Change Data Capture)。对于这种技术我们可能知道一个国内比较知名的框架Canal,非常好用!但是Canal有一个局 ...
数据中台与其存储系统
一、什么是数据中台?
最近几年经常有人提到数据中台这个词,怎么理解?不同人可能有不同的看法,数据中台总的来说是一套可持续“让企业的数据用起来”的机制,一种战略选择和组织形式,是依据企业特有的业务模式和组织架构,通过有形的产品和实施方法论支撑,构建一套持续不断把数据变成资产并服务于业务的机制 ...
Redis 作者谈如何处理维护开源项目面对的精神压力
Redis 作者 antirez 近日对在维护开源项目过程中遇到精神压力的情况发表了看法。
起因是开源项目 Docz 作者 Pedro 在 repo 中发表的一篇短文章,他在其中描述了自己在维护开源项目过程中心理状态的变化。
最初为了开发 Docz,他可以提前 3 小时起床,推迟 3 小时睡觉,可以说是全力以赴地创建了这个项目。Docz ...
阿里云李飞飞:什么是云原生数据库
云原生是一种新型技术体系,是云计算未来的发展方向。今天,我来谈谈何为云原生、云原生如何与分布式有机结合,以及云原生技术如何帮助客户迈入数字原生时代。
李飞飞,阿里巴巴集团副总裁,ACM杰出科学家,阿里云数据库产品事业部负责人,达摩院数据库与存储实验室负责人。
一 云原生:从小池塘到江河大海
...
一条慢SQL导致购物车服务无法使用的解决方案
概述
之前处理过一个购物车故障,觉得还挺经典的,在这里跟大家分享一下。这个故障直接导致前端添加购物车、获取用户购物车列表等操作都失败了。购物车是入口,一旦出现问题,影响极其严重。
临时处理
购物车服务所有接口,是有打印响应时间的,发现比平时慢了很多。由于情况已是十万火急了,我只能先重启购物车, ...
从0开始:500行代码实现 LSM 数据库
前言
LSM-Tree 是很多 NoSQL 数据库引擎的底层实现,例如 LevelDB,Hbase 等。本文基于《数据密集型应用系统设计》中对 LSM-Tree 数据库的设计思路,结合代码实现完整地阐述了一个迷你数据库,核心代码 500 行左右,通过理论结合实践来更好地理解数据库的原理。
一、SSTable(排序字符串表)
之前 ...
数据库开发环境一键式交付的设计思考
最近因为一些工作内容的调整,准备完善下开发环境的建设,让原本游离的环境管理更加合理。简单总结了下,数据库开发环境存在一些潜在隐患和瓶颈:
1)目前公司内的数据库开发环境是业务自主建设,没有DBA协助支持,有的部门会购买专门的服务器部署,有的会复用一些IDC的服务器资源,使用方式较碎片化
2)数据库开发 ...
四步搞定异常SQL
影响SQL执行效率的因素主要包括以下几点。
1)统计信息,具体如下
陈旧的统计信息
错误的优化器参数配置
数据库迁移前后优化器的改变
频繁的数据量变化
2)SQL语句编写问题
3)游标共享问题,具体如下
变量窥探
使用常量
4)资源争用问题,具体如下
硬件资源不足
锁或latch等 ...
提高数据库安全性的十一项技术
数据库不应成为危及安全和隐私的“切入口”,以下技术可以帮助降低数据库安全风险并确保合规性。
数据库中含有大量个人信息,甚至包含一些敏感信息,为管理这些数据的公司带来了不少麻烦。现在,复杂的工具和技术使得数据库开发人员可以通过保持信息的私密性来整体提升数据库的安全性。
这些解决方案主要取决于对 ...
Hive SQL语句的正确执行顺序
关于 sql 语句的执行顺序网上有很多资料,但是大多都没进行验证,并且很多都有点小错误,尤其是对于 select 和 group by 执行的先后顺序,有说 select 先执行,有说 group by 先执行,到底它俩谁先执行呢?
今天我们通过 explain 来验证下 sql 的执行顺序。
在验证之前,先说结论,Hive 中 sql 语句的执行顺序如下 ...
三分钟入门 InnoDB 存储引擎中的表锁和行锁
各位对 ”锁“ 这个概念应该都不是很陌生吧,Java 语言中就提供了两种锁:内置的 synchronized 锁和 Lock 接口,使用锁的目的就是管理对共享资源的并发访问,保证数据的完整性和一致性,数据库中的锁也不例外。
“锁" 是数据库系统区别于文件系统的一个关键特性,其对象是事务,用来锁定的是数据库中的对象,如表、 ...
为什么你的数据库需要单元测试
与工作端代码一起创建的数据集定期包含业务基本原理的战略部分。SQL是代码。你应该尽早批准它,而且要彻底批准。
测试金字塔是有助于描述编程测试特征的一种显著表示形式。当您逐步实现更值得注意的段协调时,您将继续从许多确定的、快速的和非接触的测试,转向总体上批准框架的越来越慢的全球测试。这在基本层面上是个 ...
InfluxDB,TimescaleDB和QuestDB三种时序数据库的比较
【51CTO.com快译】在过去的十年间,我们亲历了关系型、非关系型、在线分析处理(OLAP)型、以及在线事务处理(OLTP)型数据库的市场之争,也注意到了诸如:Snowflake、MongoDB、Cockroach Labs、以及Neo4j等新型数据库的产生和发展。而根据DB-Engines的一项针对数据库管理系统调查的统计(如下图所示),时序型数据库(time s ...