数据库

PostgreSQL数据库介绍,为什么使用PostgreSQL

什么是 PostgreSQL?

PostgreSQL 是一个功能强大的开源对象关系数据库系统,它使用并扩展了 SQL 语言,并结合了许多功能,可以安全地存储和扩展最复杂的数据工作负载。PostgreSQL 的起源可以追溯到 1986 年,作为加州大学伯克利分校POSTGRES项目的一部分,并且在核心平台上拥有超过 35 年的积极开发经验。

PostgreSQL 因其经过验证的架构、可靠性、数据完整性、强大的功能集、可扩展性以及软件背后的开源社区始终如一地提供高性能和创新解决方案的奉献精神而赢得了良好的声誉。PostgreSQL 可在所有主要操作系统上运行,自 2001 年以来一直符合ACID,并且具有强大的附加组件,例如流行的PostGIS地理空间数据库扩展器。毫不奇怪,PostgreSQL 已成为许多人和组织选择的开源关系数据库。

静态网站如何启用数据库查询

作者演示静态网站(比如 GitHub Pages)如何通过 SQLite 数据库,实现查询功能,完全不需要后台脚本。

这种操作的实现原理有两个:一是 SQLite 数据库以页为单位存储数据,每页默认是 4KB,可以按页读取数据;二是前端可以用 sql.js 模拟一个内存文件系统,从而实现按页读取文件。

I was writing a tiny website to display statistics of how much sponsored content a Youtube creator has over time when I noticed that I often write a small

        

如何根据性能选择内存NoSQL数据库?

导读:NoSQL数据库系统发展迅速,常见的有Redis,Tarantool ,CouchBase等等。那么对于用户来说,该如何选择呢?接下来我们将会结合性能测试工具Yahoo! Cloud Serving Benchmark(YCSB)来对几款常用内存NoSQL进行性能对比,以找出最优方案。

本文主要内容是测试了不同NoSQL数据库在测试工具YCSB中的表现。我们选取了3款流行的内存(in-memory)数据库管理系统:Redis,Tarantool 以及 CouchBase,还有缓存系统Memchached。Memchached虽然不属于数据库管理系统但常作为快速存储系统使用。…

                

面试中有哪些经典的数据库问题

一、为什么用自增列作为主键

1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引、如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引、如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含的)。

2、数据记录本身被存于主索引(一颗B+Tree)的叶子节点上。这就要求同一个叶子节点内(大小为一个内存页或磁盘页)的各条数据记录按主键顺序存放,因此每当有一条新的记录插入时,MySQL会根据其主键将其插入适当的节点和位置,如果页面达到装载因子(InnoDB默认为15/16),则开辟一个新的页(节点)

3、如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页

4、如果使用非自增主键(如果身份证号或学号等),由于每次插入主键的值近似于随机,因此每次新纪录都要被插到现有索引页得中间某个位置,此时MySQL不得不为了将新记录插到合适位置而移动数据,甚至目标页面可能已经被回写到磁盘上而从缓存中清掉,此时又要从磁盘上读回来,这增加了很多开销,同时频繁的移动、分页操作造成了大量的碎片,得到了不够紧凑的索引结构,后续不得不通过OPTIMIZE TABLE来重建表并优化填充页面。…

无限容量数据库架构设计

花了不少时间,把自己曾经做过的系统,曾经遇到到的问题,曾经实践过的架构方案,梳理总结和沉淀,尽量“系统的”记录成文字,和大家一起讨论。

本文是不同业务场景下,体系化的介绍“数据库水平切分”技术,和大家分享。

一、总起

文章:《每每谈到数据库架构,我们在讨论什么

内容:

  • 单库体系架构
  • 数据库分组架构
  • 数据库分片架构
  • 数据库垂直切分
        

没有宫廷内斗,数据库界的延禧攻略

摘要: 各位老铁们,你们有没有想老张,最近老张的才华被工作的繁忙所限制了,所以一直没时间更博,今儿个时隔数日我们终于再次见面啦(很开心)!最近有部特别火的宫廷戏,不知道大家有没有看,剧名叫做《延禧攻略》,讲述得是一个宫女,一路过关斩将,最后成为皇上最宠爱的令贵妃的故事。

各位老铁们,你们有没有想老张,最近老张的才华被工作的繁忙所限制了,所以一直没时间更博,今儿个时隔数日我们终于再次见面啦(很开心)!最近有部特别火的宫廷戏,不知道大家有没有看,剧名叫做《延禧攻略》,讲述得是一个宫女,一路过关斩将,最后成为皇上最宠爱的令贵妃的故事。

加上我本人巨爱这类题材,所以痴迷得不得了。(好像暴露了自己没有更博的真正原因哈哈)。宫廷类的剧,都是后宫嫔妃之间的尔虞吾诈,勾心斗角,有你没我,有我没你的残酷事实。胜者为王,败者为寇这种思想好像从古代就一直延续到今日。非要分出个胜负,分出个谁好,谁坏才罢休。

在数据库领域也会有此类问题,老张我混迹开源数据库圈多年。MySQL 数据库占领着开源数据库的头把交椅,MongoDB 占领着 NoSQL 数据库的第一位。我们来看下数据库的整体排名情况;

6af9578033fb49f255da47c0ead5e0304a61cc81

两者都是第一,所有总会拿来比较。也会经常被人问及到诸如此类的问题MongoDB4.0 已经问世了,而且支持事务了,是不是将来可以取代 MySQL了。MySQL 和 MongoDB 哪个数据库好用啊。今天老张想通过这篇文章,带着大家全方位解读 MySQL 与 MongoDB 的区别。让有困惑的老铁们明白,没有谁替代谁,只有哪个场景更适合谁。

我们从下面四个方向依次阐明两者的区别。只有更了解彼此,让能更好地利用它们的功能性。

5edc40f9af608084c0586291328ad5df92ec050a

数据库概述

我们先来了解一下 MySQL 这个数据库;

f207a157e6033c50966f0e989db45db33fd2d1d7

再来学习一下 MySQL 数据库的特点;

221c122f7a7435684fe50c104aa43bd2e88636ff

MySQL了解完,同理我们来了解 MongoDB 及其特点的介绍;

19f8d1462ef50d271d95801c9ef06618e0cf1d24

MongoDB 特点介绍:

da23683d068c48f16dbae00f49a772be4e4cd638

学习完第一部分之后,我们对两者数据库都有了一定的认识;接下来去从运维的角度来检验两者的不同;

        

再议数据库军规

上一篇《58到家数据库30条军规解读》引发了广泛的讨论,某些军规部分同学有疑惑,补充一文说明。

 

军规:必须使用UTF8字符集

和DBA负责人确认后,纠正为“新库默认使用utf8mb4字符集”。

这点感谢网友的提醒,utf8mb4是utf8的超集,emoji表情以及部分不常见汉字在utf8下会表现为乱码,故需要升级至utf8mb4。

默认使用这个字符集的原因是:“标准,万国码,无需转码,无乱码风险”,并不“节省空间”。…