0

数据库(一)

 2 years ago
source link: http://antkillerfarm.github.io/database/2019/02/27/database.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

SQL与数据库

2010.3

这几天看到了这篇文章:

http://www.cnbeta.com/articles/104987.htm

Twitter用户暴增20倍 计划弃用MySQL

之前许多课本中的概念顿时浮现在眼前。曾几何时,SQL成了数据库的同义词,以至于离开SQL就没法操作数据库了。但其实SQL所代表的关系型数据库,只是数据库的一类而已。除此之外还有很多其他类型的数据库。

Oracle的广告词,给当时尚在学校的我产生了这样的错觉:“只有数据库,才是处理大量数据的最好方法。”直到后来随着自己技术的进步,才知道这样的想法是如何的荒谬。

一个身边的例子,有一次我们需要处理一批数据,在使用数据库的情况下,需要2天才能处理完,峰值时内存的占用接近4G。但这还不是最糟的,关键的问题是以后数据的规模会越来越大,一旦内存占用超过4G,旧的32位硬件软件就不够用了。(当时我们对硬件了解的不多,不知道Intel X86有PAE模式,以为4G就是32位PC的极限了,其实不然。)

于是,有位同事说,这批数据虽然量大,但规则并不复杂,干脆用最原始的写文件来做吧。结果2天的处理时间缩短为1天,内存占用减少为300M。其实这也没有什么神奇的,一般的关系型数据库通常由三部分组成:SQL解释器、事务引擎和存储查询引擎。如果能够根据具体情况,去掉前两部分,并对第三部分进行优化,完全可能比Oracle做的更好。毕竟在软件这个领域并不存在超现实的东西,Oracle再牛也是跑在相应的硬件、软件之上的,少不了要和CPU、内存、硬盘打交道。

结论:不要太过依赖数据库,有的时候没有数据库,更快,更简单。

https://www.cnblogs.com/ahu-lichang/

一个数据库+大数据的blog

数据库分类

  • 键值数据库
  • 文档数据库
  • 关系型数据库
  • 列族数据库
  • 时序数据库

https://mp.weixin.qq.com/s/SsrDWrcmCHXCb3lZFzJC7w

数据库有哪些分类?应该怎样选择?

Sqlite

《Inside Sqlite》是最好的参考书,目前已经有人把它翻译成中文,可以在CSDN上找到。

《SQLite Optimization FAQ》另一篇很好的文章。

OLTP与OLAP

数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

OLAP有多种实现方法,根据存储数据的方式不同可以分为ROLAP、MOLAP、HOLAP。

ROLAP表示基于关系数据库的OLAP实现(Relational OLAP)。这种方式查询效率最低。

MOLAP表示基于多维数据组织的OLAP实现(Multidimensional OLAP)。多维数据在存储中将形成”立方块(Cube)”的结构,在MOLAP中对”立方块”的”旋转”、”切块”、”切片”是产生多维数据报表的主要技术。特点是将细节数据和聚合后的数据均保存在cube中,所以以空间换效率,查询时效率高,但生成cube时需要大量的时间和空间。

HOLAP表示基于混合数据组织的OLAP实现(Hybrid OLAP)。如低层是关系型的,高层是多维矩阵型的。这种方式具有更好的灵活性。

https://blog.csdn.net/zhangzheng0413/article/details/8271322

OLAP、OLTP的介绍和比较

https://mp.weixin.qq.com/s/80iF3secK_K7uSuuYfUDEw

分布式数据库TiDB是如何结合OLTP和OLAP的?

https://mp.weixin.qq.com/s/-OfYLqVPVioRP1kkIsCFsA

小米大数据:借助Apache Kylin打造高效、易用的一站式OLAP解决方案

https://mp.weixin.qq.com/s/eVJmWwUdYqAIs1CF6UwgaQ

Hulu在OLAP场景下数据缓存技术实战

https://mp.weixin.qq.com/s/2VutJPwMLUW51o2P0P0QLw

Sophon:Hulu智能OLAP缓存层技术实践

https://blog.csdn.net/liu251/article/details/40785291

ROLAP、MOLAP和HOLAP联机分析处理区别

https://mp.weixin.qq.com/s/WIF9Oyb5LBoKWtcDjaA45w

OLAP数仓入门:基础篇

https://mp.weixin.qq.com/s/O3p1wQYlUfcaIPbGxs4seQ

OLAP数仓入门:进阶篇

https://mp.weixin.qq.com/s/YSYkvv_74WVDceoJ9XWOjw

关于OLAP数仓,从百万到百亿级数据量实时分析

https://mp.weixin.qq.com/s/IM57guTCRvx7Pz5wDDgOTA

优酷大数据OLAP技术选型

1970: NoSQL = We have no SQL

1980: NoSQL = Know SQL

2000: NoSQL = No SQL!

2005: NoSQL = Not only SQL

2013: NoSQL = No, SQL!

https://www.cnblogs.com/liuqifeng/p/9148831.html

数据库操作命令大全

https://mp.weixin.qq.com/s/O9wBAG1L5SrNGI8JteFirQ

一文搞懂SQL:基础知识和业务实践总结

https://mp.weixin.qq.com/s/WQh-Ro03e9F1Yrhk0tTZ0A

图解SQL的JOIN

https://mp.weixin.qq.com/s/NbV76hDZXKzvark4JEoyMA

我是如何用2个Unix命令给SQL提速的

https://mp.weixin.qq.com/s/2hJzdILGgLwcw8mkCY1uLw

当我们输入一条SQL查询语句时,发生了什么?

https://juejin.im/post/6844903790571700231

SQL语法速成手册

https://blog.csdn.net/horses/article/details/104553075

SQL编程思想:一切皆关系

https://mp.weixin.qq.com/s/NgHyZVcb8zoN8tETwCWEmw

为什么阿里巴巴禁止使用存储过程?

https://mp.weixin.qq.com/s/qjNGpfeOLkg9PHRqy6Hstw

5大SQL数据清洗方法!

https://mp.weixin.qq.com/s/QpgGJchCjSr1HvFtSUfzxQ

图解SQL,这也太形象了吧!

https://mp.weixin.qq.com/s/uBOFnLKiVG-rsv5vzbDbtQ

一条sql的执行过程详解

https://mp.weixin.qq.com/s/J_ng048H4eHBm_4VBjFiWw

详解一条SQL的执行过程

https://cloud.tencent.com/developer/article/1475146

SQL语句中where条件后写上1=1是什么意思

https://cnblogs.com/SimpleWu/p/9929043.html

SQL语句性能优化

https://mp.weixin.qq.com/s/UU6_YK_cqoup-bVv8Q_sEw

Insert into select语句引发的生产事故

https://mp.weixin.qq.com/s/Whx50KNUuXORO05bi7PECw

一文详解SQL关联子查询

https://mp.weixin.qq.com/s/VJT4CVor8vE6pl5lzRHsLg

SQL窗口函数是什么?

https://juejin.cn/post/6844903998974099470

8种经常被忽视的SQL错误用法,你有没有踩过坑?

https://mp.weixin.qq.com/s/2da5ZgxPC1Z5VGb766FNCA

程序员必须清楚的10个高级SQL概念!

https://mp.weixin.qq.com/s/q86lPDWMM4NeIkQ4ilMwGg

比开源快30倍的自研SQL Parser设计与实践

https://mp.weixin.qq.com/s/1lBGVj2i5fwo9fMj6wJ47A

如何科学破解慢SQL?

https://mp.weixin.qq.com/s/6toEF5NHWoBVxHJrDrq-iA

MySQL表联接原理分析

Apache Kylin

Apache Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区。它提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持大规模数据,能够处理TB乃至PB级别的分析任务,能够在亚秒级查询巨大的Hive表,并支持高并发。

http://kylin.apache.org/

http://d.xiumi.us/board/v5/39rut/82854193

老司机带路系列:多维交叉分析引擎-Kylin

https://mp.weixin.qq.com/s/e0nkJK927ANPCsoFzlBFsg

OLAP系统解析:Apache Kylin和Baidu Palo哪家强?

https://blog.csdn.net/zhangzheng0413/article/details/8271322

OLAP、OLTP的介绍和比较

Apache Doris

Apache Kylin属于MOLAP,而Apache Doris属于ROLAP。

https://mp.weixin.qq.com/s/wzVc-FngOBbqbMzJjRqajw

Apache Doris在美团外卖数仓中的应用实践

Apache Druid

Apache Druid也是MOLAP。

https://yuzhouwan.com/posts/5845/

Apache Druid:一款高效的OLAP引擎

https://mp.weixin.qq.com/s/XxSTsHluORTDwtiopAxQ0w

深入分析Druid存储结构

GraphQL

GraphQL是在Facebook内部应用多年的一套数据查询语言和runtime。

http://graphql.org/

中文官网:

http://graphql.cn/

https://github.com/facebook/graphql

https://zhuanlan.zhihu.com/p/20638731

GraphQL and Relay浅析

https://mp.weixin.qq.com/s/4AnLu0m2IILGwyPyuK37Fg

基本操作:Go创建GraphQL API

https://zhuanlan.zhihu.com/p/157314533

直接干掉RESTful:GraphQL是真的香!

https://mp.weixin.qq.com/s/KalliFefy7fxBYd2xQaAqg

GraphQL最佳入门实战

https://mp.weixin.qq.com/s/VxeRwsYw0qL35BlPsDGbtg

5款好用且有代表性的GraphQL工具

https://mp.weixin.qq.com/s/ea6w5srIG0u7vyYEcuxaVQ

GraphQL最突出的架构优势是什么?

分布式算法

Paxos、Raft、Gossip、Nuorum NWR、PBFT、Anti-Entropy、POW、ZAB等等。

https://mp.weixin.qq.com/s/KKrxuVCrjlXXWMPTXQ-fvA

分布式之系统底层原理

https://zhuanlan.zhihu.com/p/130974371

分布式一致性协议概述

https://mp.weixin.qq.com/s/NqLpT47ZWD6oJzfo_tWceA

Paxos(分布式一致性算法)

https://mp.weixin.qq.com/s/OXE7prU9cMuZG8kFydPm9A

Paxos和Raft的前世今生

https://mp.weixin.qq.com/s/ZE3sXRWoZYgbSIPTYIHWoA

浅谈分布式一致性:Raft与SOFAJRaft

https://mp.weixin.qq.com/s/Fj4zERz9PEuNumd_SI0bEA

浅谈CAP和Paxos共识算法

https://mp.weixin.qq.com/s/KTZQjC1JokmwmCkOH8APdg

一文了解分布式一致性算法EPaxos

https://mp.weixin.qq.com/s/42cStPudXRHjs61gjSIgWw

一文读懂区块链与传统数据库之共识机制

https://blog.csdn.net/blockchain_lemon/article/details/84801413

一文读懂11个主流共识算法, 彻底搞懂PoS,PoW,dPoW,PBFT,dBFT这些究竟是什么鬼…

https://zhuanlan.zhihu.com/p/113612578

Chandy-Lamport算法核心解读

https://mp.weixin.qq.com/s/q2XL-_XoRLL1xLzGmzlo6A

分布式快照算法: Chandy-Lamport

https://zhuanlan.zhihu.com/p/130332285

分布式一致性算法-Paxos、Raft、ZAB、Gossip

https://mp.weixin.qq.com/s/ow-6rQYGlvX316h63aCGVg

百度正式开源其Raft一致性算法实现braft

https://zhuanlan.zhihu.com/p/273270802

包教包会的用一张白纸推导出RAFT算法

https://zhuanlan.zhihu.com/p/25664121

比较raft ,basic paxos以及multi-paxos

https://mp.weixin.qq.com/s/JVreQzE8B6nAgPmDHM5aXQ

从Paxos到Multi-Paxos

Cache

缓存雪崩指大量缓存同一时间段集体失效,或者缓存整体不能提供服务,导致大量的请求全部到达数据库,对数据CPU和内存造成巨大压力,严重的会造成数据库宕机。也被称为缓存踩踏(Cache Stampede)。

使用随机过期时间。为每一个key都合理的设计一个过期时间,这样可以避免大量的key在同一时刻集体失效。

https://mp.weixin.qq.com/s/RME5b3plT97nYfUaCl9ePw

关于缓存和数据库强一致的可行方案

https://mp.weixin.qq.com/s/gQAA2-YuvTHrL2IP8Bco6w

缓存与数据库的数据一致性方案介绍

https://mp.weixin.qq.com/s/Gm7S0a5VN9L57wlry4-t6w

缓存关注点——先写DB还是“缓存”?


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK