计算机题库分享

树形结构数据存储方案(三):闭包表

树形结构数据存储方案(三):闭包表

【2021/2/8 14:18:18】 将Closure Table翻译成闭包表不知道是否合适,闭包表的思路和物化路径差不多,都是空间换时间,Closure Table,一种更为彻底的全路径结构,分别记录路径上相关结点的全展开形式。能明晰任意两结点关系而无须多余查询,级联删除和结点移动也很方便。但是它的存储开销会大一些,除了表示结点的Me

阅读
树形结构数据存储方案(五):区间嵌套

树形结构数据存储方案(五):区间嵌套

【2021/2/8 14:18:18】 前面的一篇文章介绍了左右值编码,不知道大家注意到了没有,如果数据庞大,每次更新都需要更新差不多全表,效率较低没有更好的方式?今天我们就来研究下区间嵌套法。区间嵌套法原理如果节点区间[clft, crgt]与[plft, prgt]存在如下关系:plft <= clft and crgt &gt

阅读
使用 Redis 解决“树”形数据的复杂查询

使用 Redis 解决“树”形数据的复杂查询

【2021/2/8 14:18:18】 最近因业务需要,研究了一下树数据结果的存储及查询解决方案。 最初的想法是使用neo4j,可是在网上看了一下开源的不支持集群,感觉用的人不多。网上也查了一些 树形结构数据存储方案 但每种实现方案都有它的一定局限性。想了一短时间后,想出了下面的方案:一、 因为复杂的查询都由Redis来处理,所以数据库表

阅读
反转技术面试!还有这样的操作?

反转技术面试!还有这样的操作?

【2021/2/8 14:18:18】 假想面试的时候用 Clojure 做题,狠狠地鄙视了一下不懂 Clojure、且高傲无知的面试官,然后潇洒地离去。如果你打算找一份程序员的工作,那么你必须要通过白板面试。 作为工程师,模拟白板面试也经常是我们早上例行公事的一部分,同时还需要在星光层(astral plane)上打开一个漂亮的网格状的

阅读
MySQL 进行 Replace 操作时造成数据丢失——那些坑你踩了吗?

MySQL 进行 Replace 操作时造成数据丢失——那些坑你踩了吗?

【2021/2/8 14:18:18】 公司开发人员在更新数据时使用了 replace into 语句,由于使用不当导致了数据的大量丢失,到底是如何导致的数据丢失?现分析如下。REPLACE INTO 原理的官方解释为:REPLACE works exactly like INSERT, except that if an old row

阅读
WebAPI的一种单元测试方案

WebAPI的一种单元测试方案

【2021/2/8 14:18:18】 大家是如何对webApi写测试的呢? 1.利用Fiddler直接做请求,观察response的内容。 2.利用Httpclient做请求,断言response的内容。 3.直接调用webApi的action,这种方式的测试跟真实的调用还是有一定差距,不够完美。接下来我介绍一种webApi的in-me

阅读
基于 Redis 实现分布式应用限流

基于 Redis 实现分布式应用限流

【2021/2/8 14:18:18】 限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务。前几天在DD的公众号,看了一篇关于使用 瓜娃 实现单应用限流的方案,参考《redis in action》 实现了一个jedis版本的,都属于业务层次限制。 实际场景中常用的限流策略

阅读
MySQL 索引设计概要

MySQL 索引设计概要

【2021/2/8 14:18:18】 在关系型数据库中设计索引其实并不是复杂的事情,很多开发者都觉得设计索引能够提升数据库的性能,相关的知识一定非常复杂。然而这种想法是不正确的,索引其实并不是一个多么高深莫测的东西,只要我们掌握一定的方法,理解索引的实现就能在不需要 DBA 的情况下设计出高效的索引。本文会介绍 数据库索引设计与优化 中

阅读
数据异构的武器-BINLOG+MQ

数据异构的武器-BINLOG+MQ

【2021/2/8 14:18:18】 何谓数据异构,上周交易部门商品的同事过来做分享,又看到这个词,他的PPT里面是 数据库异构。其实我们以前做的事情,也是可以成为数据异构。比如我们将DB里面的数据持久化到REDIS里面去,就是一种数据异构的方式。如果要下个定义的话:把数据按需(数据结构、存取方式、存取形式)异地构建存储。分库分表中有一

阅读
ASP.NET Core 源码阅读之 Microsoft.Extensions.DependencyInjection

ASP.NET Core 源码阅读之 Microsoft.Extensions.DependencyInjection

【2021/2/8 14:18:18】 这篇随笔主要记录一下ASP.NET Core团队实现默认的依赖注入容器的过程,我的理解可能并不是正确的。DependencyInjection这个项目不大,但却是整个ASP.NET Core的基础,因为它提供了依赖注入(DI)容器的默认实现,而依赖注入贯穿整个ASP.NET Core。相关源码可以去

阅读
抛弃EF,20分构建一个属于自己的ORM框架

抛弃EF,20分构建一个属于自己的ORM框架

【2021/2/8 14:18:18】 相信EF大家都不陌生了,因为数据库表跟程序实体是一一对应的原因,我们能够通过lambda这种函数式的编程方式进行操作数据库,感觉非常清晰明了。与我们直接写SQL相比,lambda是强类型,拥有更好的扩展性,伸缩性,而且编程更加的方便,快捷。下面我们就基于Expression和lambda来与大家构建

阅读
为什么 SQL 正在击败 NoSQL,数据的未来是什么?

为什么 SQL 正在击败 NoSQL,数据的未来是什么?

【2021/2/8 14:18:18】 自从可以利用计算机做事以来,我们一直在收集的数据以指数级的速度在增长,因此对于数据存储、处理和分析技术的要求也越来越高。在过去的十年里,由于SQL无法满足这些要求,软件开发人员就抛弃了它,NoSQL也就因此而渐渐发展起来:MapReduce,Bigtable,Cassandra,MongoDB等等。

阅读
详解 MySQL 基准测试和 sysbench 工具

详解 MySQL 基准测试和 sysbench 工具

【2021/2/8 14:18:18】 作为一名后台开发,对数据库进行基准测试,以掌握数据库的性能情况是非常必要的。本文介绍了MySQL基准测试的基本概念,以及使用sysbench对MySQL进行基准测试的详细方法。文章有疏漏之处,欢迎批评指正。数据库的基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。基准测试与压力测试基准

阅读
使用 ProxySQL 改进 MySQL SSL 的连接性能

使用 ProxySQL 改进 MySQL SSL 的连接性能

【2021/2/8 14:18:18】 在这篇博文里,我们准备来看一下 ProxySQL 是如何提高 MySQL 的 SSL 连接性能的。当用 SSL 部署 MySQL 时,主要的问题是如果没有使用连接池(例如:PHP 中的 mysqlnd-mux,python中 的 mysql.connector.pooling 等等),初始握手会造成

阅读
GitHub 的 MySQL 基础架构自动化测试

GitHub 的 MySQL 基础架构自动化测试

【2021/2/8 14:18:18】 我们 MySQL 数据库基础架构是 Github 关键组件。 MySQL 提供 Github.com、 GitHub 的 API 和验证等等的服务。每一次的?git?请求都以某种方式触及 MySQL。我们的任务是保持数据的可用性,并保持其完整性。即使我们 MySQL 集群是按流量分配的,但是我们还是

阅读
如何遏制 PostgreSQL WAL 的疯狂增长

如何遏制 PostgreSQL WAL 的疯狂增长

【2021/2/8 14:18:18】 PostgreSQL在写入频繁的场景中,可能会产生大量的WAL日志,而且WAL日志量远远超过实际更新的数据量。 我们可以把这种现象起个名字,叫做“WAL写放大”,造成WAL写放大的主要原因有2点。过量的WAL输出会对系统资源造成很大的消耗,因此需要进行适当的优化。每条WAL记录的构成大致如下:src

阅读
如何让网站不下线而从 Redis 2 迁移到 Redis 3

如何让网站不下线而从 Redis 2 迁移到 Redis 3

【2021/2/8 14:18:18】 我们在 Sky Betting&Gaming 中使用 Redis 作为共享内存缓存,用于那些需要跨 API 服务器或者 Web 服务器鉴别令牌之类的操作。在 Core Tribe 内,它用来帮助处理日益庞大的登录数量,特别是在繁忙的时候,我们在一分钟内登录数量会超过 20,000 人。这在很大程度上

阅读
MySql Binlog 初识

MySql Binlog 初识

【2021/2/8 14:18:18】 Mysql日志 MySQL 的日志包括错误日志(ErrorLog),更新日志(Update Log),二进制日志(Binlog),查询日志(Query Log),慢查询日志(Slow Query Log)等; 更新日志是老版本的MySQL 才有的,目前已经被二进制日志替代;在默认情况下,系统仅仅打开

阅读
MySQL 5.7 MGR 集群搭建

MySQL 5.7 MGR 集群搭建

【2021/2/8 14:18:18】 最近看了一下mysql5.7的MGR集群挺不错的,有单主和多主模式,于是乎搭建测试了一下效果还不错,我指的不错是搭建和维护方面都比较简单。网上绝大多数都是单主模式,当然我这里也是,为了加深印象,特意记录一下搭建过程,等以后再去尝试多主模式,相信大家现在数据库的瓶颈基本都是在写,读写分离虽然是一种可行

阅读
读懂 MySQL 执行计划

读懂 MySQL 执行计划

【2021/2/8 14:18:18】 在之前的面试过程中,问到执行计划,有很多童鞋不知道是什么?甚至将执行计划与执行时间认为是同一个概念。今天我们就一起来了解一下执行计划到底是什么?有什么用途?执行计划,简单的来说,是SQL在数据库中执行时的表现情况,通常用于SQL性能分析,优化等场景。在MySQL使用?explain?关键字来查看SQ

阅读