计算机题库分享

不再迷惑,无值和 NULL 值

不再迷惑,无值和 NULL 值

【2021/2/8 14:18:40】 在关系型数据库的世界中,无值和NULL值的区别是什么?一直被这个问题困扰着,甚至在写TSQL脚本时,心有戚戚焉,害怕因为自己的一知半解,挖了坑,贻害后来人,于是,本着上下求索,不达通幽不罢休的决心(开个玩笑),遂有此文。学习过关系型数据库的伙伴都知道,NULL是指不确定的值,在数据库中绝对是噩梦的存

阅读
使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台

使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台

【2021/2/8 14:18:40】 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台。前面讲解了VSCode开发调试 .NET Core。都只是在windows下运行。.NET Core真正的核心是跨平台,我们现在来了解学习?.NET Core 跨平台。在windows 下开发.NET Core 应用程序

阅读
C#高级编程:对象和类型

C#高级编程:对象和类型

【2021/2/8 14:18:40】 在看过C++之后,再看C#的面向对象感觉就不难了,只是有一些区别而已。那么现在我们来看看什么是类。类是面向对象语言和面向过程语言最大的区别。然而抽象就是面向对象的基本方法。对于抽象我们一点都不陌生,因为抽象是人类认识问题的基本手段之一。抽象是指对具体问题进行概括,抽出一类对象的公共性质并加以描述的过

阅读
C#基础温习: 理解委托和事件

C#基础温习: 理解委托和事件

【2021/2/8 14:18:40】 委托类似于C++中的函数指针(一个指向内存位置的指针)。委托是C#中类型安全的,可以订阅一个或多个具有相同签名方法的函数指针。简单理解,委托是一种可以把函数当做参数传递的类型。很多情况下,某个函数需要动态地去调用某一类函数,这时候我们就在参数列表放一个委托当做函数的占位符。在某些场景下,使用委托来调

阅读
ASP.NET Core 开发:中间件

ASP.NET Core 开发:中间件

【2021/2/8 14:18:40】 ASP.NET Core开发,开发并使用中间件(Middleware)。中间件是被组装成一个应用程序管道来处理请求和响应的软件组件。每个组件选择是否传递给管道中的下一个组件的请求,并能之前和下一组分在管道中调用之后执行特定操作。具体如图:今天我们来实现一个记录ip 的中间件。1.新建一个asp.ne

阅读
纯 C# 实现 Hook 功能

纯 C# 实现 Hook 功能

【2021/2/8 14:18:40】 发布一个自己写的用于Hook?.Net方法的类库,代码量不大,完全的C#代码实现,是一个比较有趣的功能,分享出来希望能和大家共同探讨安装:Install-Package?DotNetDetour 源码:https://github.com/bigbaldy1128/DotNetDetour1.为何想

阅读
基于 RESTful 标准的 Web Api

基于 RESTful 标准的 Web Api

【2021/2/8 14:18:40】 微软的web api是在vs2012上的mvc4项目绑定发行的,它提出的web api是完全基于RESTful标准的,完全不同于之前的(同是SOAP协议的)wcf和webService,它是简单,代码可读性强的,上手快的,如果要拿它和web服务相比,我会说,它的接口更标准,更清晰,没有混乱的方法名称

阅读
ASP.NET Core WebAPI 开发-新建WebAPI项目

ASP.NET Core WebAPI 开发-新建WebAPI项目

【2021/2/8 14:18:40】 ASP.NET Core WebAPI 开发-新建WebAPI项目,ASP.NET Core 1.0 RC2 即将发布,我们现在来学习一下?ASP.NET Core WebAPI开发。网上已经有泄露的VS2015 Tooling,需要VS2015 Update 2。.NET Core 1.0.0 R

阅读
基本性能分析,省了几百万美元

基本性能分析,省了几百万美元

【2021/2/8 14:18:40】 本文是关于我如何应用基本性能分析技术,借助火焰图做了一处小改进,使得我们 Postgres 计算机集群的 CPU 状况获得了 10?倍的改善,并在第二年帮助 Heap 节省了几百万刀。Heap 是一个用户分析工具,它自动捕捉每个用户与网站或应用进行的交互行为。成功安装于网站后,Heap 会自动追踪每

阅读
如何最有效的编写SQL

如何最有效的编写SQL

【2021/2/8 14:18:40】 译者注:解决数据库级(SQL)工作上的问题,应该采用的是SET方法(整体的)而不是过程式的方法。下面来看看作者为什么这么说。编写有效的SQL查询是企业软件世界中最大的难题之一。每个公司在数据库开发项目中所面临的最根本的问题,在于开发环境中实现的性能不能在生产环境中实现。一般来说,存在性能损失是因为生

阅读
LevelDB 实现分析

LevelDB 实现分析

【2021/2/8 14:18:39】 LevelDB 是由 Google 开发的 key-value 非关系型数据库存储系统,是基于 LSM(Log-Structured-Merge Tree) 的典型实现,LSM 的原理是:当读写数据库时,首先纪录读写操作到 Op log 文件中,然后再操作内存数据库,当达到 checkpoint 时

阅读
DB 分库分表的基本思想和切分策略

DB 分库分表的基本思想和切分策略

【2021/2/8 14:18:39】 本文着重介绍sharding的基本思想和理论上的切分策略,关于更加细致的实施策略和参考事例请参考我的另一篇博文:DB 分库分表(1): 拆分实施策略和示例演示一、基本思想Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格

阅读
如何理解并正确使用 MySQL 索引

如何理解并正确使用 MySQL 索引

【2021/2/8 14:18:39】 索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性能,接下来主要介绍在MySql数据库中索引类型,以及如何创建出更加合理且高效的索引技巧。注:这里主要针对的是InnoDB存储引擎的B+Tree索引数据结构1、大大减轻了服务器需要扫描的数据量,从而提高了数据

阅读
记一次 MySQL 主从复制延迟的踩坑

记一次 MySQL 主从复制延迟的踩坑

【2021/2/8 14:18:39】 最近开发中遇到的一个 MySQL 主从延迟的坑,记录并总结,避免再次犯同样的错误。一个活动信息需要审批,审批之后才能生效。因为之后活动要编辑,编辑后也可能触发审批,审批中展示的是编辑前的活动内容,考虑到字段比较多,也要保存审批活动的内容,因此设计采用了一张临时表,审批中的活动写进审批表(activi

阅读
DB 分库分表(2):全局主键生成策略

DB 分库分表(2):全局主键生成策略

【2021/2/8 14:18:39】 本文将主要介绍一些常见的全局主键生成策略,然后重点介绍flickr使用的一种非常优秀的全局主键生成方案。关于分库分表(sharding)的拆分策略和实施细则,请参考该系列的前一篇文章:DB 分库分表(1):拆分实施策略和示例演示第一部分:一些常见的主键生成策略一旦数据库被切分到多个物理结点上,我们将

阅读
DB 分库分表(1):拆分实施策略和示例演示

DB 分库分表(1):拆分实施策略和示例演示

【2021/2/8 14:18:39】 第一部分:实施策略图1.数据库分库分表(sharding)实施策略图解(点击查看大图)1.准备阶段对数据库进行分库分表(Sharding化)前,需要开发人员充分了解系统业务逻辑和数据库schema.一个好的建议是绘制一张数据库ER图或领域模型图,以这类图为基础划分shard,直观易行,可以确保开发人

阅读
DB 分库分表(3):关于使用框架还是自主开发以及 sharding 实现层面的考量

DB 分库分表(3):关于使用框架还是自主开发以及 sharding 实现层面的考量

【2021/2/8 14:18:39】 当团队对系统业务和数据库进行了细致的梳理,确定了切分方案后,接下来的问题就是如何去实现切分方案了,目前在sharding方面有不少的开源框架和产品可供参考,同时很多团队也会选择自主开发实现,而不管是选择框架还是自主开发,都会面临一个在哪一层上实现sharding逻辑的问题,本文会对这一系列的问题逐一

阅读
MySQL 主从复制原理探索

MySQL 主从复制原理探索

【2021/2/8 14:18:39】 上一篇文章里面,讲到了遇到mysql主从延迟的坑,对于这次的坑多说两句,以前也看过这样的例子,也知道不能够写完之后马上更新,但是真正开发的时候还是没有注意到这一点,道理大家都懂,但是还是会犯错,只有等到自己亲生体验到该错误之后,才真正的掌握到该道理。经历过一次mysql主从延迟之后,就开始思考,主从

阅读
DB 分库分表(5):一种支持自由规划无须数据迁移和修改路由代码的 Sharding 扩容方案

DB 分库分表(5):一种支持自由规划无须数据迁移和修改路由代码的 Sharding 扩容方案

【2021/2/8 14:18:19】 作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sharding改造阶段。简单地说,Sharding就是将原来单一数据库按照一定的规则进行切分,把数据分散到多台物理机(我们称之为Shard)上存储,从而突破单机限制

阅读
DB 分库分表(4):多数据源的事务处理

DB 分库分表(4):多数据源的事务处理

【2021/2/8 14:18:19】 系统经sharding改造之后,原来单一的数据库会演变成多个数据库,如何确保多数据源同时操作的原子性和一致性是不得不考虑的一个问题。总体上看,目前对于一个分布式系统的事务处理有三种方式:分布式事务、基于Best Efforts 1PC模式的事务以及事务补偿机制。我们下面对这三种处理方式一一进行分析。

阅读