dasein58_个人页

个人头像照片 dasein58
个人头像照片 个人头像照片
961
0
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息

2021年11月

  • 11.02 20:28:31
    发表了文章 2021-11-02 20:28:31

    TDSQL中修复的mysql内核bug

    在TDSQL这两年多的开发工作中,我感觉很自豪的一件事是我修复了不少mysql-5.7.17和mariadb-10.1.9的内核bug,这些bug大多已经报告给了MySQL/MariaDB官方开发团队,在每个bug描述中我会贴出来bug报告的连接。本文将大略介绍这些bug的概况,我在将来会写更多文章详细介绍每个bug的具体问题分析以及解决思路。本文列出的所有bug都已经修复,经过验证可以正确工作并解决相关问题。 这里先说一下为什么我要提交代码给mysql/mariadb官方开发团队,主要有一下几个好处: 1. 官方开发者可以review我提交的patch,帮助完善patch,发现和解决之前
  • 11.02 20:28:00
    发表了文章 2021-11-02 20:28:00

    TDSQL XA 全局死锁处理

    本文是我最初于2017年发表在我的个人微信公众号里面,现发布在这里。 1.概述 TDSQL XA的全局事务(global transaction)就是用户客户端连接到TDSQL XA分布式数据库系统后发起和执行的事务,也就是TDSQL XA处理的分布式事务。一个全局事务可能会写入数据到多个后端mysql 数据库实例,每个实例上面的本地事务都是这个全局事务的事务分支(transaction branch)。客户端发起全局事务提交时,运行在TDSQL XA的网关模块中的全局事务管理器会控制该事务访问的所有后端mysql数据库实例完成两阶段提交。 全局事务执行过程中可能发生两类死锁,第一类就是
  • 11.02 20:27:23
    发表了文章 2021-11-02 20:27:23

    TDSQL XA的事务隔离级别

    本文是我最初于2017年发表在我的个人微信公众号里面,现发布在这里。 1.1. 概述 TDSQL XA全局事务(global transaction)是指用户客户端连接到TDSQL XA分布式数据库系统后发起和执行的事务,也就是TDSQL XA处理的分布式事务。一个全局事务可能会写入数据到多个后端mysql 数据库实例,每个实例上面的本地事务都是这个全局事务的事务分支(transaction branch)。客户端发起全局事务提交时,运行在TDSQL XA的网关模块中的全局事务管理器会控制该事务访问的所有后端mysql数据库实例完成两阶段提交。 TDSQL XA的全局事务的隔离级别最高可以
  • 11.02 20:26:20
    发表了文章 2021-11-02 20:26:20

    中小型企业应该选择什么样的云服务器

    中小型公司放企业网站,国内靠前的服务器商各方面差别是不大的,都是基于同样的技术,只是在服务器配置的选择上,不同的应用场景有不同的要求需要考虑。 1.仅仅是展示站 那么采用阿里云ECS 或者 腾讯云CVM 2核心4g内存5M宽带,1000以下同时访问是没有问题的。 2.需要部署其他项目,如erp,文件备份,对性能,可靠性要求较高。 对数据量大,访问高,稳定性要求较高时,建议采用在RDS上放数据库,在OSS上存放大量文件,而只将web应用部署在多台ECS上然后对外通过SLB提供服务的方式,这样具有较高的性能和稳定性以及容灾能力。 所以建议采用阿里云SLB + 多台ECS + RDS +
  • 11.02 20:25:32
    发表了文章 2021-11-02 20:25:32

    Oracle DBA遇到频次最高的五十个问题

    随着数据价值在企业地位越来越高,DBA这一职位更是受到重视和支持,如何帮助各位数据达人维护好数据,也是ITPUB社区一直秉承的理念,本期我们将社区DBA关注最多的50个问题,已经各位大师对问题的解决方式进行了汇总和整理,期待大家更多给与问题和反馈,以下是问题和解决方案。 问题1:如何收集统计信息不影响数据库? 解决方案 大多数情况下,表的统计信息不准导致了优化器对于执行计划的错误计算,因此需要对表的统计信息进行更正, 以便让优化器重新选择准确的 执行计划。 但是在生产情况下,随意的收集统计信息,则会给数据库带来隐患: 1、对重新收集统计信息的表,对应的一些SQL可能需要重新硬解
  • 11.02 20:24:41
    发表了文章 2021-11-02 20:24:41

    线程的基础

    安全是多线程编程的核心主题,但并不是只要使用多线程就一定会引发安全问题。要了解哪些操作是安全的,哪些是不安全的,就必须先掌握如何使用多线程。不过在操作多线程之前,我们先了解一下多线程的几种状态。 线程的状态 在Thread的实现中,包含一个名为State的enum类,用来标识线程运行中的各种状态,其中定义了以下几个类型: public enum State { /** * Thread state for a thread which has not yet started. */ NEW, /** * Thread state fo
  • 11.02 20:23:02
    发表了文章 2021-11-02 20:23:02

    大数据和人工智能工程上的一些点

    大数据 大数据这个词最早出现在上世纪90年代的美国,直到2012年后才火起来。大数据没有一个明确的概念,之所以称之为大是因为数据量太大超过了单台计算机的资源,这时就需要分布式的数据处理工具,以便能在用户可容忍的时间内进行数据处理。大数据从业人员肯定会去了解谷歌的mapreduce论文和hadoop开源工具。然而海量数据本来是静态,只有通过对数据进行分析和利用才能让数据产生价值。正所谓量变产生质变。 人工智能 人工智能在1956年的达特茅斯会议上被提出来,它研究的是如何制造智能机器或模拟人类的智能行为。大数据与人工智能之间可以说是相辅相成,人工智能的基础是数据,而数据的利用又离不开人工智能。各
  • 11.02 20:22:04
    发表了文章 2021-11-02 20:22:04

    在PostgreSQL中构建基础类型

    最近在做一些功能兼容的工作,做了一些数据类型的工作。其中一部分是添加新的基础类型,很多细节值得记录一下,在此进行步骤介绍以及代码介绍。 此次要添加一种新的数据类型,这种类型使用的算法和PostgreSQL使用相同的input和output函数。那么接下来就将所有步骤进行演示。 类型信息 类型名,newtype; 类型长度,pg中显示-1,定长,和bigint相同,实际占用8个字节; 使用bigint(int8或int64)的input、output、send、receive函数; 能够进行显示、排序、简单比较、建立索引; 实现方法
  • 11.02 19:43:05
    发表了文章 2021-11-02 19:43:05

    搭好数据架构,这7个技术是关键

    数字化转型的核心是数据,它已成为商业中最有价值的事务。由于格式不兼容,传统数据库的局限性,以及无法灵活地合并来自多个来源的数据,组织长期以来一直受到其使用数据的困扰。新兴技术的出现有望改变这一切。 企业IT基础设施平台的重新构建是一项复杂的任务。重新构建平台通常由一系列变化的关键业务驱动因素引发,现在情况正是如此。简而言之,主导企业IT技术的近30年的平台无法再满足推动业务发展所需的工作负载的需求。 数字化转型的核心是数据,它已成为商业中最有价值的事务。由于格式不兼容,传统数据库的局限性,以及无法灵活地合并来自多个来源的数据,组织长期以来一直受到其使用数据的困扰。新兴技术的出现有望改变这一
  • 11.02 19:42:12
    发表了文章 2021-11-02 19:42:12

    大数据时代技术架构

    1. 概述 当前大数据已经渗透到每个行业和领域,成为了重要的生产因素。在大数据环境下,数据是海量的,且呈爆发式增长,数据类型复杂多样,除结构化数据外,还有大量半结构化和非结构化数据。大数据应用需求也很复杂,包括复杂多表关联查询,即席查询,离线数据批量处理等。这种形势给构建大数据处理的通用平台带来了挑战。 2. 传统数据库构建大数据平台的不足 传统事务型数据库是针对事务型处理设计的,采用行存储和Shared Disk架构,硬件方面采用小型机+磁盘阵列的配置。而面对大数据的分析处理型应用,传统的数据库在处理海量数据方面表现出明显的不足,主要表现在如下方面: Ÿ传统的Shared Disk架
  • 11.02 19:41:13
    发表了文章 2021-11-02 19:41:13

    做了三年数据分析,给你的几点建议

    还有一个多月,我工作就满3年了。在职场上,3年是个坎,意味着从初级转到中高级,但前提是能力跟得上工作年限。 我第一份和第二份工作,是做的数据运营,现在这份工作,title是商业分析师。因为专业不是数学、计算机类的,所以相当于转行,但也是理工科,有编程基础,所以相对文科生来说会稍微轻松点,但转行之路并不轻松。 之前看到很多想转行的朋友,会问比如,女生适不适合做数据分析、文科生能不能做好数据分析、数据分析做什么的,这样的问题。 今天想写的,是三年来的一个总结,也写一下我是如何从一个连Excel都不会的菜鸟慢慢成长的经历。想必像BAT这样的大牛不会是我的读者,那我就自作主张的把读我这篇文章的朋
  • 11.02 19:40:14
    发表了文章 2021-11-02 19:40:14

    十问 TiDB :关于架构设计的一些思考

    “我希望能够把 TiDB 的设计的一些理念能够更好的传达给大家,相信大家理解了背后原因后,就能够把 TiDB 用的更好。” 做 TiDB 的缘起是从思考一个问题开始的:为什么在数据库领域有这么多永远也躲不开的坑? 从 2015 年我们写下第一行代码,3 年以来我们迎面遇到无数个问题,一边思考一边做,尽量用最小的代价来快速奔跑。 作为一个开源项目,TiDB 是我们基础架构工程师和社区一起努力的结果,TiDB 已经发版到 2.0,有了一个比较稳定的形态,大量在生产环境使用的伙伴们。可以负责任的说,我们做的任何决定都经过了非常慎重的思考和实践,是经过内部和社区一起论证产生的结果。它未必是最好的,
  • 11.02 19:39:33
    发表了文章 2021-11-02 19:39:33

    集中式架构和分布式架构哪种更好?

    集中式架构的优势主要是设备数量少,架构设计简单、通用与应用耦合度低,资源可以灵活调度,部署容易。数据集中存储和处理,无需多个节点之间分布式协作,所以具有系统响应快,数据可靠性和一致性好的优点。由于架构简单,设备少,所以在系统运维,容灾设计,空间用电等方面都具有较大优势。稳健、可靠、易维护管理是集中式架构的特点,所以集中式架构多用于传统的银行、电信、交通、医疗等行业。数据显示,2019年,仍有92%的银行选择购买集中式架构的服务器,以确保关键业务稳定运行。 而分布式架构的优势主要是灵活、性价比高,同时也安全自主,其弹性伸缩能力优势明显。所以随着时下数据量的剧增,分布式架构在这方面的能力展露锋芒
  • 11.02 19:37:51
    发表了文章 2021-11-02 19:37:51

    数据结构为什么那么难?每个面试官都会问的问题!

    01 招聘趣事 如果你关注计算机专业招聘试题,会发现越是大型公司,问的问题越基础,有的甚至问你什么是栈和队列,反而一些小公司会关心你做过什么系统。从关注点的不同可以看出,大公司更注重基础扎实和发展潜力,而小公司希望你立刻能够为其干活。可以这样比喻:小公司喜欢细而长的竹子,大公司更喜欢碗口粗的竹笋。 我曾经推荐一个学生到某知名公司,没多久,学生向我说了应聘的事情:“我介绍我开发了企业管理系统、在线商城系统等,没想到他问我使用了什么数据结构和算法,我懂很多技术,那么多功能我都实现了,他不问,却问我使用了什么数据结构和算法,你说搞笑不?数据结构和算法我早就忘了,我会开发软件还不行吗?”人力资源
  • 11.02 19:34:52
    发表了文章 2021-11-02 19:34:52

    py2neo基本用法

    neo4j目前是图数据库的主流,neo4j的Cypher语法简单直观,但是不便于流程化。如果习惯在python环境下处理数据,那么还是要用到python的neo4j库,即py2neo. py2neo本身并不复杂,但要先适应它的思考模式。另一个问题是py2neo文档的示例较少,而且不同版本的py2neo挺不相同,容易弄混。这里要讲的是目前的v4版本。 连接数据库和图 from py2neo import * # *中常用的是Node,Relationship,Graph graph = Graph(url,username='name',password='pw') 2.
  • 11.02 19:33:26
    发表了文章 2021-11-02 19:33:26

    5个技巧助你编写更好的React代码

    在本文中,我想分享几个技巧,这些技巧将改善你的React代码。 1. 解构 props 在 JS 中解构对象(尤其是 props)可以大大减少代码中的重复。看下面的例子: //Parent Component import React from 'react'; import CoffeeCard from './CoffeeCard'; const CafeMenu = () => { const coffeeList = [ { id: '0', name: 'Espresso', pr
  • 11.02 19:32:46
    发表了文章 2021-11-02 19:32:46

    为什么说for...of循环是JS中的宝石?

    是什么使得一个编程语言的新特性很棒?当这个特性可以结合多个其它特性的时候。 ES2015 版本中引入的 for...of 语句就是这种情况。 for...of 可以迭代数组、类数组以及任何可以迭代的对象(maps、sets、DOM集合),并且,for...of 的语句还很短。 在这篇文章中,我将会演示 for...of 的能力。 1. 数组迭代 for...of 最常见的应用是对数组项进行迭代。该循环可以高效得完成迭代,而无需其他变量来保持索引。 例如:
  • 11.02 19:31:33
    发表了文章 2021-11-02 19:31:33

    Linux 用户态与内核态的交互——netlink 篇

    理论篇 在 Linux 2.4 版以后版本的内核中,几乎全部的中断过程与用户态进程的通信都是使用 netlink 套接字实现的,例如iprote2网络管理工具,它与内核的交互就全部使用了netlink,著名的内核包过滤框架Netfilter在与用户空间的通读,也在最新版本中改变为netlink,无疑,它将是Linux用户态与内核态交流的主要方法之一。它的通信依据是一个对应于进程的标识,一般定为该进程的 ID。当通信的一端处于中断过程时,该标识为 0。当使用 netlink 套接字进行通信,通信的双方都是用户态进程,则使用方法类似于消息队列。但通信双方有一端是中断过程,使用方法则
  • 11.02 19:25:16
    发表了文章 2021-11-02 19:25:16

    基于NETLINK的内核与用户空间共享内存的实现

    一、前言 前些日子,开发中用到了netlink来实现内核与用户空间共享内存,写点笔记与大家分享。因为我对这块也不了解,写出来的东西一定存在很多错误,请大家批评指正~ 内核与用户空间共享内存的关键是,用户空间必须得知共享内存的起始地址,这就要求内核空间应该有一种通信机制来通知用户空间。已经有Godbach版主等人用proc文件系统实现了(可以google '共享内存 内核 用户空间'),很显然任何内核空间与用户空间的通信方法都可资利用。本文主要讲基于NETLINK机制的实现。 二、NETLINK简介 netlink在linux的内核与用户空间通信中用得很多(但具体例子我举不出,因为我不清楚~~
  • 11.02 19:24:30
    发表了文章 2021-11-02 19:24:30

    内核源码kfifo分析(原创)

    从2.6.10开始,Linux内核提供了一个通用的环形缓存(我喜欢称为环形队列);它的头文件是<linux/kfifo.h>,kfifo.c是实现代码。 在设备驱动中环形缓存出现相当多. 网络适配器, 特别地, 常常使用环形缓存来与处理器交换数据(报文)[LDD3]。 见下面的图“LDD3中描述的队列”。 我们来看下kfifo的数据结构: struct kfifo { unsigned char *buffer; /* the buffer holding the data */ unsigned int size; /* the size of the al
  • 11.02 19:23:41
    发表了文章 2021-11-02 19:23:41

    知识图谱 | Neo4j算法概述

    在neo4j中,Neo4j Graph Algorithms ,通过call algo.list() 可查看neo4j中的算法列表。 在neo4j官方文档中,主要记录如下各种方法: 一. 中心性算法(Centrality algorithms) 中心度算法主要用来判断一个图中不同节点的重要性: PageRank(页面排名算法,algo.pageRank),pagerank值越高的实体在网络中起到的作用越大; ArticleRank(文档排名算法,algo.articleRank),pagerank的一种变体,平衡了出度高低对重要性的影响;
  • 11.02 19:23:10
    发表了文章 2021-11-02 19:23:10

    图数据库neo4j数据导入、备份和恢复

    在之前的文章中,介绍了如何搭建neo4j集群,集群的故障切换和节点恢复,还介绍了如何配置驱动实现自动failover。本文聚焦在neo4j的数据上。聊聊如何从外部数据源将数据导入neo4j,如何对neo4j数据库进行备份和恢复。 数据导入 可以有多种方式将数据导入neo4j。大致分为cypher语句导入、apoc.load函数过程导入和离线import导入。 cypher语句导入 这个最简单,就是直接使用cypher语句的create或merge命令来创建neo4j的节点、边和属性。对比来说,create性能较好,但其不会进行存在与否的检查,可能会导致数据库中出现2个相同的节点等情况,造成
  • 11.02 19:22:06
    发表了文章 2021-11-02 19:22:06

    Linux2.6内核进程创建过程分析

    Fork的系统调用代码在linux/arch/i386/kernel/process.c中: asmlinkage int sys_fork(struct pt_regs regs) { return do_fork(SIGCHLD, regs.esp, ®s, 0, NULL, NULL); } Sys_fork系统调用通过 do_fork()函数实现,通过对do_fork()函数传递不同的clone_flags来实现fork,clone,vfork。 Syn_clone和syn_vfork的系统调用代码如下: asmlinkage int sys_clone(struct pt_regs
  • 11.02 19:21:18
    发表了文章 2021-11-02 19:21:18

    关于LINUX在中断(硬软)中不能睡眠的真正原因

    自陷就是TRAP,LINUX的EXCEPTION-异常,有进程上下文。 TRAP,相当于一个软中断(INT 1, INT 3, 断点,单步等),和软中断调用的系统调用(INT 21, INT 80)几乎一样,属于当前进程,进入内核使用进程的内核栈。唯一不同的是,系统调用的软中断在用户程序中的位置相对固定,而TRAP相对不固定。 假定INT 0是被0除TRAP,你在USER中执行A = 1/0和执行INT 0是一样的,而INT 0 和INT 80也是一样的。用户程序执行INT 80有进程CONTEXT, 执行INT 0也一样有进程CONTEXT. 可以看出,TRAP(比如INT 0)的PR
  • 11.02 19:19:43
    发表了文章 2021-11-02 19:19:43

    Neo4j导入Aminer论文数据

    前面一篇介绍了Neo4j一些比较基础的用法。这一篇笔记主要记录下在导入一个大数据集Aminer中MAG论文数据所遇到的一些问题。 数据集介绍 首先关于论文数据集的描述可以在Aminer_Open_Academic中查看,这里简单介绍一下。 有两套数据,一个是Aminer Papers, 是清华大学整理发布的论文集,MAG Papers是微软学术发布的论文数据集。 我们这里选取了MAG的部分数据集来测试导入到Neo4j中。 MAG数据集一共有9个压缩包,其中每一个压缩包里面有20个txt文件,每个txt文件中每行代表一篇论文,用json表示,mid为论文唯一id,可以作为主键使用。除了论文的基
  • 11.02 19:18:58
    发表了文章 2021-11-02 19:18:58

    内核模块中对文件的读写

    平时网络部分的东西碰的多些,这块一开始还真不知道怎么写,因为肯定和在用户空间下是不同的。google过后,得到以下答案。一般可以用两种方法:第一种是用系统调用。第二种方法是filp->open()等函数。下面分别来说下这两种方法。 1 利用系统调用: sys_open,sys_write,sys_read等。 其实分析过sys_open可以知道,最后调用的也是filp->open。 sys_open ==> do_sys_open ==> filp->open 在linuxsir上的一个帖子,上面一个版主说:sys_open和进程紧密相关,往往不在内核中使用。 而其实sys_open最后也
  • 11.02 19:18:22
    发表了文章 2021-11-02 19:18:22

    微服务介绍与实践总结

    近年来,微服务与DevOps等概念不断热炒。两者实际上是紧密相联,又相辅相成,Docker、Mesos、Kubernates等技术方案的快速崛起,为微服务提供了更坚实土壤,使其得以更顺利地实施落地。 类似spirng-boot等技术的发展与大为传播,更是直接促进了微服务成熟化发展。本文将从与对传统单体架构服务与微服务的比较,介绍微服务,并在最后对DevOps与微服务联系做简单介绍。 单体架构(Monolithic Architecture ) 假设你要开发一个Web后台服务,大部份开发者一开始肯定向于将,所有功能实现放在一个服务进程内。例如JavaWeb的开发者,往往会产出一个War包,这就
  • 11.02 19:17:49
    发表了文章 2021-11-02 19:17:49

    Go与微服务-序言

    好奇心 我是在2012年左右开始接触Go,那会主要是基于C/C++做大型的嵌入式系统。最初并不觉得Go有什么优势。一方面来看,性能比不上C/C++,相差数倍,且无法控制内存生命周期,只能依赖Go本身的GC机制。另一方面来看,我们基于C/C++已有一套程序的流程体系,用Go的开发效率并没有显著提升,且编译后的二进制程序往往过大,这对大多嵌入式系统而言是难以接受的。 那时候关注Go主要是出于好奇心,为什么Rob Pike和Ken Thompson等大拿要设计这么一门语言,是因为C不够好?具体是哪里不好?Go本身又有什么优势,在设计最初究竟做了怎样的取舍? 权衡 同年,开始推行敏捷开发,尝试适应
  • 11.02 19:17:16
    发表了文章 2021-11-02 19:17:16

    老树发新芽:微服务

    如果我告诉你有这样一种软件架构,一个应用程序的组件通过基于网络的通讯协议为其它组件提供服务,我估计你可能会说它是 … 是的,它和你编程的年限有关。如果你从上世纪九十年代就开始了你的编程生涯,那么你肯定会说它是 面向服务的架构( Service-Oriented Architecture)(SOA)。但是,如果你是个年青人,并且在云上获得初步的经验,那么,你将会说:“哦,你说的是 微服务(Microservices)。” 你们都没错。如果想真正地了解它们的差别,你需要深入地研究这两种架构。
  • 11.02 19:16:12
    发表了文章 2021-11-02 19:16:12

    30个不错的微服务工具推荐

    微服务架构,或说是微服务本身,是一种用于提升软件系统可扩展性的架构风格。与微服务相关的好文章不胜枚举,而本文希望能够为那些从未尝试过、或只是刚刚开始尝试微服务的人,提供一份顶级开源工具的清单。 微服务架构可用于企业、政府、学校和慈善机构等的企业级应用程序。与传统风格的单体架构完全相反,微服务专注于单个单元应用程序。 微服务微小、独立且独特。微服务架构的构建和维护都可能非常复杂。微服务之间可以相互通信,利用同步协议、HTTP / REST或异步协议来服务于整体的业务目标。HTTP / REST或AMQP就是协作服务的示例,这些协作服务通过实现彼此相关的功能来尽可能高效地协同工作。
  • 11.01 20:13:55
    发表了文章 2021-11-01 20:13:55

    关于人工智能在数据质量管理中的应用

    说实在的,人工智能这个概念有些过于高大上,从大的方面包括深度学习、机器学习、强化学习等等,而深度学习又包括图像识别、语音识别、自然语言处理、预测分析;机器学习则包括监督学习、无监督学习、半监督学习,监督学习又细分为回归、分类、决策树等等。理论上人工智能什么都能做,什么都能迎合的上。 关键数据质量管理实在太接地气了,以至于大家都理解为数据质量检查规则定义、数据质量检查规则脚本、检查规则执行引擎、数据质量检查规则执行情况监控,数据质量检查报告;而数据质量校验规则无非就是一致性、准确性、唯一性、真实性、及时性、关联性、完整性的一堆校验,再大白话一些无非就是SQL语句。 而本人面临的还不是基于数据仓库
  • 11.01 20:12:32
    发表了文章 2021-11-01 20:12:32

    谈谈MongoDB适用领域

    本篇文章写于2019年底,现在一年半时间过去了,MongoDB的发展显然越来越好。不仅MongoDB公司上市了,且股价彪了不少。另外,新出的版本增加了很多好用的特性,尤其是在最新的MongoDB 4.0版本已支持Replica Set级别的事务,对于Secondary上的读也做了较大的优化。下面是原文: MongoDB是一个非常有前途的数据库,MongoDB官方对自己的定位是通用数据库,其实这个定位跟MySQL有些像。虽其流行度还远未达到MySQL的水平,但笔者有个可能不恰当的比较,MongoDB就像N年前的MySQL,随着时间的推移,会变得越来越强大,也会越来越流行。下面结合MongoDB
  • 11.01 20:11:01
    发表了文章 2021-11-01 20:11:01

    MongoDB性能实践总结

    MongoDB性能优化,有很多优化的方案,因自己曾参与过一段IoM 1.3的性能优化工作,这里只总结了一下我们实践过的性能要点,作为回顾。 一. MongoDB服务端性能优化点 1. 限制连接数 Mongod 的服务模型是每个网络连接由一个单独的线程来处理,每个线程配置了1MB 的栈空间,当网络连接数太多时,过多的线程会导致上下文切换开销变大,同时内存开销也会上涨。另外,每个连接都要打开一个文件句柄,当然从成本上讲,这个消耗相对内存是小了很多。但换个角度,文件句柄也被其他模块消耗着,比如WT存储引擎,就需要消耗大量的文件句柄。 分布式shard集群部署环境的最大连接数通过route进程的
  • 11.01 20:09:08
    发表了文章 2021-11-01 20:09:08

    NoSQL,浅谈redis与mongoDB的区别

    MongoDB和Redis都是NoSQL数据库,采用结构型数据存储,而MySQL、oracle等则属于传统的关系型数据库。 NoSQL数据库与关系型数据库的优缺点 关系型数据库 优点:以完善的关系代数理论为基础,有严格的标准,支持事务ACID四性,借助索引机制可以实现高效的查询。 缺点:可扩展性差,无法较好地支持海量数据存储,数据模型过于死板,事务机制影响了系统的整体性能,全文搜索功能较弱。 NoSQL数据库 优点:数据之间无关系,易扩展。有非常高的读写性能,支持大量数据,性能高。有灵活的数据模型,无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。
  • 11.01 20:08:35
    发表了文章 2021-11-01 20:08:35

    MongoDB 分析查询性能

    cursor.explain("executionStats")和 db.collection.explain("executionStats") 方法提供关于查询性能的相关信息。这些信息可用于衡量查询是否使用了索引以及如何使用索引。 db.collection.explain() 还提供有关其他操作的执行信息。例如 db.collection.update()。 有关详情信息,请参见 db.collection.explain() 。 评价查询性能 考虑采用以下的 inventory 集合文档: db.inventory.insert([ { "_id" : 1, "item"
  • 11.01 20:07:40
    发表了文章 2021-11-01 20:07:40

    MongoDB 自动删除集合中过期的数据——TTL索引

    简介 ​ TTL (Time To Live, 有生命周期的) 索引是特殊单字段索引,MongoDB可以用来在一定时间后自动从集合中删除文档的特殊索引。 这对于某些类型的数据非常好,例如机器生成的事件数据,日志和会话信息,这些信息只需要在数据库中保留一段时间。 ​ 创建 TTL 索引,只需要在使用 db.collection.createIndex() 方法,对字段值为日期或者包含日期的数组设置 expireAfterSeconds 选项即可。 1、如果字段是一个数组,并有多个日期值时,MongoDB使用最低(即最早)日期值来计算失效阈值。 2、如果字段不是日期类型也不是一个包含日期的数组
  • 11.01 20:06:45
    发表了文章 2021-11-01 20:06:45

    MongoDB 字段拼接 $concat(aggregation)

    $concat 拼接字符串操作,返回拼接后的字符串。语法格式如下: { $concat: [ <expression1>, <expression2>, ... ] } 参数可以是任何有效的表达式,只要它们解析为字符串即可。 有关表达式的更多信息,请参阅表达式。 示例 准备以下测试数据: db.inventory.drop(); var rows =
  • 11.01 20:05:23
    发表了文章 2021-11-01 20:05:23

    NoSQLBooster for MongoDB 中跨库关联查询

    使用 MongoDB 是我们常常会遇到一些特殊的需求需要跨库关联查询,比如订单明细缺商品重量需要补商品重量,而商品重量数据又在商品库中,这事就需要跨库关联操作,示例代码如下: // 使用 order 库,注意语句后面不要加分号 use order var count = ; db.order_detail.find({"store_code":"110"}).forEach(function(_order){ var item = db.getSiblingDB("goods").item.findOne({"barcode":_order.barcode}); if(it
  • 11.01 20:04:26
    发表了文章 2021-11-01 20:04:26

    MongDB查询性能分析——explain 结果详解

    MongoDB 提供 db.collection.explain(), cursort.explain() 及 explain 命令获取查询计划及查询计划执行统计信息。 explain 结果将查询计划以阶段树的形式呈现。 每个阶段将其结果(文档或索引键)传递给父节点。 叶节点访问集合或索引。 中间节点操纵由子节点产生的文档或索引键。 根节点是MongoDB从中派生结果集的最后阶段。 阶段操作描述,例:
  • 11.01 20:03:30
    发表了文章 2021-11-01 20:03:30

    MongoDB 分析查询性能

    cursor.explain("executionStats")和 db.collection.explain("executionStats") 方法提供关于查询性能的相关信息。这些信息可用于衡量查询是否使用了索引以及如何使用索引。 db.collection.explain() 还提供有关其他操作的执行信息。例如 db.collection.update()。 有关详情信息,请参见 db.collection.explain() 。 评价查询性能 考虑采用以下的 inventory 集合文档:
  • 11.01 19:56:09
    发表了文章 2021-11-01 19:56:09

    MongoDB 入门笔记

    MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。 MongoDB 的安装 我用的是 linux,因此可以用以下命令进行安装:
  • 11.01 19:55:12
    发表了文章 2021-11-01 19:55:12

    MongoDB进阶之路:不仅仅是技术研究,还有优化和最佳实践

    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 本文将从操作手册、技术研究、会议分享、场景应用等方向给大家推荐干货好文。
  • 11.01 19:45:44
    发表了文章 2021-11-01 19:45:44

    MongoDB Spark Connector 实战指南

    Why Spark with MongoDB? 高性能,官方号称 100x faster,因为可以全内存运行,性能提升肯定是很明显的 简单易用,支持 Java、Python、Scala、SQL 等多种语言,使得构建分析应用非常简单 统一构建 ,支持多种数据源,通过 Spark RDD 屏蔽底层数据差异,同一个分析应用可运行于不同的数据源; 应用场景广泛,能同时支持批处理以及流式处理 MongoDB Spark Connector 为官方推出,用于适配 Spark 操作 MongoDB 数据;本文以 Python 为例,介绍 MongoDB Spark Connector 的使用,帮助你基于 M
  • 11.01 19:45:07
    发表了文章 2021-11-01 19:45:07

    MongoDB中的索引

    1、普通单列索引 我们用如下代码来测试: for(var i=0;i&lt;200000;i++){ db.java.insert({name:&#39;xiao&#39;+i,age:i}) } 第一、我们先检验一下查询性能 var start=new Date() db.java.find({name:&#39;xiao156789&#39;}) var end=new Date() end-start 17510
  • 11.01 19:44:16
    发表了文章 2021-11-01 19:44:16

    MongoDB完整教程

    什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个文档,数据结构由键值(key=&gt;value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。 主要特点 MongoDB的提供了一个面向文档存储,操作起来比较简单和容易。
  • 11.01 19:43:31
    发表了文章 2021-11-01 19:43:31

    你一定要知道的--MongoDB:基础知识

    通过优锐课架构学习分享中,研究什么是MongoDB,什么是NoSQL数据库,以及对现有数据库管理系统的介绍。码了很多实用的笔记,分享 大家参考学习。 1. 目的 在本文中,我们将研究什么是MongoDB,什么是NoSQL数据库,以及对现有数据库管理系统的介绍。 此外,我们将讨论MongoDB功能-为什么使用MongoDB以及MongoDB历史记录。 此外,我们还将通过一些示例查看MongoDB应用程序和MongoDB安装。 2.什么是NoSQL数据库? 在开始之前,我们必须了解NoSQL。 NoSQL或“ Not Only SQL”是非结构化数据库。 它提供了一种使用字段存储和检索数据的功能
  • 11.01 19:43:01
    发表了文章 2021-11-01 19:43:01

    学习MongoDB数据库

    关于MongoDB的学习过程由下列的标题号顺序。 一、什么是NoSQL? NoSQL(NoSQL = Not Only SQL ),意即&quot;不仅仅是SQL&quot;。 在现代的计算系统上每天网络上都会产生庞大的数据量。 这些数据有很大一部分是由关系数据库管理系统(RDMBSs)来处理。 1970年 E.F.Codd&#39;s提出的关系模型的论文 &quot;A relational model of data for large shared data banks&quot;,这使得数据建模和应用程序编程更加简单。 通过应用实践证明,关系模型是非常适合于客户服务器编程,远远超出预期的利益,今天它是结构化数据存储在网络和
  • 11.01 19:42:01
    发表了文章 2021-11-01 19:42:01

    在mongodb服务器上存储和执行 js 函数 - 存储过程

    虽然官方不推荐使用将业务逻辑存储在数据库中,并且提示在 mongodb 中执行 javascript 存在性能限制。 但实际上,将 javascript 函数存储在 mongodb 中执行,还是非常有必要的,更方便,许多场景下性能会更好(在执行大量查询处理时不需要将数据传回客户端引擎)。 在目前的版本中,我们任然可以将 javascript 函数存储在 mongodb 内置的一个特殊集合 db.system.js 中,然后这些变量就可以在任何 mongodb 的 javascript 上下文中调用,包括:db.eval()、$where子句、mapReduce。 自从 mongodb 3
  • 11.01 19:41:25
    发表了文章 2021-11-01 19:41:25

    MongoDB系列 | 集合的基本操作

    1:简介 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富、最像关系数据库的。 由于关系型数据库存储对数据之间存在高度的关联,在数据量达到上万亿比特时,关系型数据库所特有的约束和关联就会成为性能瓶颈。非关系型数据库采用了另一种思维方式,即不考虑数据之间千丝万缕的联系,存储也不需要固定的模式,这样无需多余的操作就能成倍地扩展数据量。 MongoDB 支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型,比如:
  • 发表了文章 2024-11-09

    SpringBoot 内部方法调用,事务不起作用的原因及解决办法

  • 发表了文章 2024-11-05

    向百度提交网站地图Sitemap

  • 发表了文章 2024-11-03

    SpringBoot_web开发-webjars&静态资源映射规则

  • 发表了文章 2024-11-03

    JavaScript获取url网址中域名后面的部分

  • 发表了文章 2024-11-01

    浏览器输入域名网址访问后的过程详解

  • 发表了文章 2024-11-01

    域名前缀和后缀html,为什么域名前要加www前缀,www是什么意思?

  • 发表了文章 2024-10-31

    python爬虫抓取91处理网

  • 发表了文章 2022-08-15

    一篇文章带你了解JVM常见面试题有哪些

  • 发表了文章 2022-08-15

    CSS浮动讲解

  • 发表了文章 2022-08-15

    知识总结:CSS定位

  • 发表了文章 2022-08-15

    技巧篇:CSS高级技巧详解

  • 发表了文章 2022-08-15

    关于List集合,这份总结很全面

  • 发表了文章 2022-08-15

    这篇文章教你轻松过dubbo+zk面试

  • 发表了文章 2022-08-15

    前端:Vue3为何使用Proxy实现数据监听

  • 发表了文章 2022-08-15

    JavaScript的深拷贝实现

  • 发表了文章 2022-08-15

    最近面试了13家企业软件测试岗位,面试题整理

  • 发表了文章 2022-08-15

    揭秘什么是面向接口编程

  • 发表了文章 2022-08-15

    Spring Cloud Alibaba 新一代微服务解决方案

  • 发表了文章 2022-08-15

    前端:如何在 JavaScript 中获取当前日期

  • 发表了文章 2022-08-15

    前端:给新手看的 React Hooks 教程

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息