dasein58_个人页

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

个人介绍

暂无个人介绍

擅长的技术

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

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

云产品技术能力:

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

阿里云技能认证

详细说明
暂无更多信息

2021年11月

  • 11.04 20:37:53
    发表了文章 2021-11-04 20:37:53

    Docker技术商业落地的思考

    Docker的火热,催生了人们对于其商业模式的探讨,虽然目前Docker还有很多有待完善之处,但这并不妨碍人们对于Docker的追捧,但我们也应理性地看到,Docker并不是万能药,对其商业模式的探讨,将有力促进Docker的健康发展。 Docker技术虽然刚问世3年,但其发展如火如荼,受到大量企业客户和个人开发者的追捧,作为一项开源技术,Docker有一点和Java很像,那就是它们都是标准。作为标准的企业级应用开发语言,绝大多数企业内部的业务应用都是用Java开发的,而Docker正在成为应用封装的标准,未来企业内部的业务应用大多会封装成Docker的形式。 标准化最大的好处是带
  • 11.03 21:24:02
    发表了文章 2021-11-03 21:24:02

    Kubernetes Operator不仅仅用于数据库,关于它你要知道这4点

    如果没有真正的自动化,你就无法充分发挥容器的潜力。这就是Kubernetes Operator越来越重要的原因。 Kubernetes的一个关键优势是,它使现代应用程序和基础设施带来的许多运维工作实现自动化。而Kubernetes Operator被认为是实现这一优势的重要手段。 什么是Kubernetes Operator? 让我们回顾一下,什么是Kubernetes Operator,并给出它们如何工作的示例。 “Operator是控制用户资源的Kubernetes API的客户端。”Nexient的DevOps主管Matthew Dresden说,“此功能通过监控事件而不编辑Ku
  • 11.03 21:23:07
    发表了文章 2021-11-03 21:23:07

    Kubernetes Operator不仅仅用于数据库,关于它你要知道这4点

    如果没有真正的自动化,你就无法充分发挥容器的潜力。这就是Kubernetes Operator越来越重要的原因。 Kubernetes的一个关键优势是,它使现代应用程序和基础设施带来的许多运维工作实现自动化。而Kubernetes Operator被认为是实现这一优势的重要手段。 什么是Kubernetes Operator? 让我们回顾一下,什么是Kubernetes Operator,并给出它们如何工作的示例。 “Operator是控制用户资源的Kubernetes API的客户端。”Nexient的DevOps主管Matthew Dresden说,“此功能通过监控事件而不编辑Ku
  • 11.03 21:22:05
    发表了文章 2021-11-03 21:22:05

    你觉得Helm 3无聊?其实这说明它成熟了

    如果你听说过关于Helm 3的唯一一件事就是它删除了Tiller动态配置文件生成工具,那么你已经知道最重要的一点:该项目经历了一次重大的重写,以赶上Kubernetes的发展并消除长期的安全问题。 这是项目成熟的标志,也反映在其他关键开发中,如更好的补丁合并、对可用性(包括发布管理)的重大改进,以及对Helm 2 chart的明确支持生命周期。 微软的Helm主程序经理Bridget Kromhout表示,对于安全性和稳定性来说,这是一个很好的信号。 “Helm 3更简单,更安全,它可能不会吸人眼球,但这些功能足以让运维大规模系统的人高兴。" “一个项目删除大块代码,这是成熟的标志。”
  • 11.03 21:19:06
    发表了文章 2021-11-03 21:19:06

    PostgreSQL安装、配置及简单使用方法

    一、PostgreSQL简介 1、什么是PostgreSQL PostgreSQL数据库是目前功能最强大的开源数据库,支持丰富的数据类型(如JSON何JSONB类型,数组类型)和自定义类型。而且它提供了丰富的接口,可以很容易地扩展它的功能,如可以在GiST框架下实现自己的索引类型等,它还支持使用C语言写自定义函数、触发器,也支持使用流行的语言写自定义函数,比如其中的PL/Perl提供了使用Perl语言写自定义函数的功能,当然还有PL/Python、PL/Tcl,等等。 2、PostgreSQL数据库的优势 PostgreSQL数据库是目前功能最强大的开源数据库,它是最接近工业标准SQL
  • 11.03 21:17:29
    发表了文章 2021-11-03 21:17:29

    处理令人心烦的数据库事务日志 (SQL Server Transaction Log Files)

    经常, 我们会被过快增长的数据库事务日志Transaction Log而困扰, 如果我们没有正确及时的处理, 可能会造成数据库交易无法进行, 服务器磁盘空间占光等问题. 在SQL Server的使用过程中, 我经常帮助用户和数据库的维护人员处理日志Transaction Log太大后造成的系统瘫痪的问题. 其实这个问题很容易避免. 今天我给大家分享下, 是什么造成了日志增长过大的问题. 和如何避免这种问题再次发生. 该文章的语句适用于SQL Server 2015 及其以后的版本 每一个数据库至少有两个文件: 一个是数据文件(Data file), 一个是事务日志文件(Transaction
  • 11.03 21:16:17
    发表了文章 2021-11-03 21:16:17

    SQL Server触发器总结

    触发器的简介: 触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。SQL3的触发器是一个能由系统自动执行对数据库修改的语句。 触发器可以查询其他表,而且可以包含复杂的sql语句。它们主要用于强制服从复杂的业务规则或要求。例如:您可以根
  • 11.03 21:15:45
    发表了文章 2021-11-03 21:15:45

    MySql查询性能优化

    避免向数据库请求不需要的数据 在访问数据库时,应该只请求需要的行和列。请求多余的行和列会消耗MySql服务器的CPU和内存资源,并增加网络开销。 例如在处理分页时,应该使用LIMIT限制MySql只返回一页的数据,而不是向应用程序返回全部数据后,再由应用程序过滤不需要的行。 当一行数据被多次使用时可以考虑将数据行缓存起来,避免每次使用都要到MySql查询。 避免使用SELECT *这种方式进行查询,应该只返回需要的列。 查询数据的方式 查询数据的方式有全表扫描、索引扫描、范围扫描、唯一索引查询、常数引用等。这些查询方式,速度从慢到快,扫描的行数也是从多到少。可以通过EXPLAIN语句中的ty
  • 11.03 21:14:44
    发表了文章 2021-11-03 21:14:44

    对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析

    Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。 优点 1. Oracle 能在所有主流平台上运行(包括 windows)完全支持所有工业标准采用完全开放策略使客户选择适合解决方案对开发商全力支持。 2. Oracle 并行服务器通过使组结点共享同簇工作来扩展wi
  • 11.03 21:13:38
    发表了文章 2021-11-03 21:13:38

    怎样才能写出高质量的SQL语句?

    网上关于sql优化的答案数不胜数,可是篇幅太长,看一下滚动条就没有要看下去的欲望,这里自己总结精简了一下,全文1200字,阅读需要5分钟,还有很多不足之处望大佬多多指点~ 字段设计 价格使用定点数decimal 小单位大数额避免出现小数 单表字段不宜过多(最多30) 尽可能使用 not null 关联表的设计 一对多(使用外键) 多对多(单独新建一张表将多对多拆分成两个一对多) 一对一(如商品的基本信息(item)和商品的详细信息(item_intro),通常使用相同的主键或者增加一个外键字段(item_id)) 范式
  • 11.03 21:13:06
    发表了文章 2021-11-03 21:13:06

    SQL Server数据库DDL变更监控

    数据库的DDL语言, 就是关系型数据库的三大类语言中的一种, 数据定义语言(Data Definition Language), 主要是数据结构和数据库对象的定义. 有CREATE , ALTER, DROP 等语句组成. 工作中经常需要对数据对象变更进行监控, 可能存在以下的场景: 监控所有的变更, 并保留变更记录. 比如对某些表结构的变更可能需要对其他的数据库的的表进行同步变更. 可能某些View的改变需要同步修改默写Stored Procedure 存储过程. 某些变更需要同步修改相应的应用程序. 经过研究, 可以通过全局触发器和自定义的监控Stored Procedure来实现.
  • 11.03 21:12:28
    发表了文章 2021-11-03 21:12:28

    sqlserver 学习问题总结

    1.SQLSERVER 中GO的作用** go 向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号。go是把t-sql语句分批次执行。(一步成功了才会执行下一步,即一步一个go) BEGIN 和 END 语句用于将多个 Transact-SQL 语句组合为一个逻辑块。在控制流语句必须执行包含两条或多条 Transact-SQL 语句的语句块的任何地方,都可以使用 BEGIN 和 END 语句。
  • 11.03 21:05:09
    发表了文章 2021-11-03 21:05:09

    SQL Server存储过程总结

    存储过程简介: 存储过程(Stored Procedure)是在大型数据库中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升 ​ ------来源于百度百科 存储过程的种类: 1系统存储过程 以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作。 2本地存储过程 用户创建的存储过程是由用户创建并完成某一特定功能的存储过程,事实上一般所说的存储过程就是指本地存储过程。
  • 11.03 21:03:45
    发表了文章 2021-11-03 21:03:45

    搞明白redis的这些问题,你就是redis高手

    什么是redis? Redis 本质上是一个 Key-Value 类型的内存数据库, 整个数据库加载在内存当中进行操作, 定期通过异步操作把数据库数据 flush 到硬盘上进行保存。 因为是纯内存操作, Redis 的性能非常出色, 每秒可以处理超过 10 万次读写操作, 是已知性能 最快的 Key-Value DB。 Redis 的出色之处不仅仅是性能, Redis 最大的魅力是支持保存多种数据结构, 此外单个 value 的最大限制是 1GB, 不像 memcached 只能保存 1MB 的数据, 因此 Redis 可以用 来实现很多有用的功能,比方说用他的 List 来做 FI
  • 11.03 21:03:12
    发表了文章 2021-11-03 21:03:12

    SQL学习笔记

    本文基于Mosh Hamedani 的SQL教学视频,传送门av71348135,视频中用到的sql执行文件在这里cfk3 。那么,我们就开始吧。(持续更新中) 1.The SELECT Statement 目标:查找sql_store数据库的顾客表,要求按顾客名的字典序输出顾客编号为1的顾客记录 USE sql_store; SELECT * FROM customers WHERE customer_id=1 ORDER BY first_name 注意:代码第1行末尾的分号不能丢,否则无法执行,还要留意SELECT,WHERE,ORDER BY的先后顺序。 2.The SELEC
  • 11.03 20:57:07
    发表了文章 2021-11-03 20:57:07

    饿了么总监分享:我是如何完成从程序员到管理层的蜕变?

    很多小伙伴说,我在底层已经搬砖好几年了,要怎么才能晋升管理层?这个问题我也是感同身受,因为我也在底层工作了好多年了o(╥﹏╥)o为了给大家解答这个问题,我有幸邀请到了饿了么前总监来为我们做一些分享:我是如何完成从程序员到管理层的蜕变,大家欢迎! 本文稿对应的视频可以在我的B站(程序员良许)里看到,欢迎一键三连哦~
  • 11.03 20:55:27
    发表了文章 2021-11-03 20:55:27

    SQL标准对schema如何定义?

    ISO/IEC 9075-1 SQL标准中将schema定义为描述符的持久命名集合(a persistent, named collection of descriptors),如果你之前对schema的定义疑惑不解,希望看了我的这篇文章会好一些,起码不会更差。 广义上 造成疑惑的另一个原因可能是由于schema这一术语具有如此广泛的含义,因为它在不同的环境下有不同的含义,schema一词源于希腊语skhēma,意思是形态(form),轮廓(figure),形状(shape)或方案(plan)。Schema在心理学中被用来描述组织信息类别及其之间关系的有组织的思维或行为模式。我们在设计一个数
  • 11.03 20:54:22
    发表了文章 2021-11-03 20:54:22

    跳过或替代执行异常的 SQL 语句

    本文介绍了如何使用 DM 来处理异常的 SQL 语句。 目前,TiDB 并不完全兼容所有的 MySQL 语法(详见 TiDB 已支持的 DDL 语句)。当使用 DM 从 MySQL 同步数据到 TiDB 时,如果 TiDB 不支持对应的 SQL 语句,可能会造成错误并中断同步任务。在这种情况下,DM 提供以下两种方式来恢复同步: 使用 dmctl 来手动跳过 (skip) 该 SQL 语句对应的 binlog event。 使用 dmctl 来手动指定其他 SQL 语句来替代 (replace) 该 SQL 语句对应的 binlog event,并向下游执行。 如果提前预知将要同步 T
  • 11.03 20:53:23
    发表了文章 2021-11-03 20:53:23

    从 MySQL 迁移数据 —— 以 Amazon Aurora MySQL 为例

    本文以 Amazon Aurora MySQL 为例介绍如何使用 DM 从 MySQL 协议数据库迁移数据到 TiDB。 第 1 步:在 Aurora 集群中启用 binlog 假设有两个 Aurora 集群需要迁移数据到 TiDB,其集群信息如下,其中 Aurora-1 包含一个独立的读取器节点。 集群 终端节点 端口 角色 Aurora-1 pingcap-1.h8emfqdptyc4.us-east-2.rds.amazonaws.com 3306 写入器 Aurora-1 pingcap-1-us-east-2a.h8emfqdptyc4.us-east-2.rds.amazona
  • 11.03 20:52:47
    发表了文章 2021-11-03 20:52:47

    Data Migration 错误说明

    本文介绍了 Data Migration (DM) 的错误系统,以及各种错误信息的详细含义。 DM 错误系统 DM 1.0.0-GA 版本中引入了新的错误系统。该系统: 增加了错误码机制。 增加了 class、scope、level 等错误信息。 优化了错误描述内容、错误调用链信息和调用堆栈信息。 错误系统的详细设计和实现,可参阅 RFC 文档: Proposal: Improve Error System。 错误信息示例 以下是 DM 实际输出的一条错误信息。本文根据这条信息,对各个字段作详细说明。 [code=38008:class=dm-master:scope=internal
  • 11.03 20:37:57
    发表了文章 2021-11-03 20:37:57

    oracle存储过程详细教程

    存储过程的定义: 1、存储过程是以命名的数据库对象形式存储于数据库当中。存储在数据库中的优点是很明显的,因为代码不保存在本地,用户可以在任何客户机上登录到数据库,并调用或修改代码。 2、存储过程可由数据库提供安全保证,要想使用存储过程,需要有存储过程的所有者的授权,只有被授权的用户或创建者本身才能调用执行存储过程。 3、存储过程的信息是写入数据字典的,所以存储过程可以看作是一个公用模块,用户编写的PL/SQL程序或其他存储过程都可以调用它(但存储过程和函数不能调用PL/SQL程序)。一个重复使用的功能,可以设计成为存储过程。 4、像其他高级语言的过程和函数一样,可以传递参数给存储过程,
  • 11.03 20:36:55
    发表了文章 2021-11-03 20:36:55

    TiDB Data Migration 术语表

    本文档介绍 TiDB Data Migration (TiDB DM) 相关术语。 B Binlog 在 TiDB DM 中,Binlog 通常指 MySQL/MariaDB 生成的 binary log 文件,具体请参考 MySQL Binary Log 与 MariaDB Binary Log。 Binlog event MySQL/MariaDB 生成的 Binlog 文件中的数据变更信息,具体请参考 MySQL Binlog Event 与 MariaDB Binlog Event。 Binlog event filter 比 Black & white table list 更
  • 11.03 20:36:10
    发表了文章 2021-11-03 20:36:10

    Data Migration 常见问题

    DM 是否支持同步阿里 RDS 以及其他云数据库的数据? DM 仅支持解析标准版本的 MySQL/MariaDB 的 binlog,对于阿里云 RDS 以及其他云数据库没有进行过测试,如果确认其 binlog 为标准格式,则可以支持。 task 配置中的黑白名单的正则表达式是否支持非获取匹配(?!)? 目前不支持,DM 仅支持 golang 标准库的正则,可以通过 re2-syntax 了解 golang 支持的正则表达式。 如果在上游执行的一个 statement 包含多个 DDL 操作,DM 是否支持同步? DM 会尝试将包含多个 DDL 变更操作的单条语句拆分成只包含一个 DDL 操
  • 11.03 20:35:10
    发表了文章 2021-11-03 20:35:10

    使用 TiDB Lightning 恢复 Kubernetes 上的集群数据

    本文介绍了如何使用 TiDB Lightning 快速恢复 Kubernetes 上的 TiDB 集群数据。 TiDB Lightning 包含两个组件:tidb-lightning 和 tikv-importer。在 Kubernetes 上,tikv-importer 位于单独的 Helm chart 内,被部署为一个副本数为 1 (replicas=1) 的 StatefulSet;tidb-lightning 位于单独的 Helm chart 内,被部署为一个 Job。 为了使用 TiDB Lightning 恢复数据,tikv-importer 和 tidb-lightning
  • 11.03 20:34:35
    发表了文章 2021-11-03 20:34:35

    滚动升级 Kubernetes 上的 TiDB 集群

    滚动更新 TiDB 集群时,会按 PD、TiKV、TiDB 的顺序,串行删除 Pod,并创建新版本的 Pod,当新版本的 Pod 正常运行后,再处理下一个 Pod。 滚动升级过程会自动处理 PD、TiKV 的 Leader 迁移与 TiDB 的 DDL Owner 迁移。因此,在多节点的部署拓扑下(最小环境:PD * 3、TiKV * 3、TiDB * 2),滚动更新 TiKV、PD 不会影响业务正常运行。 对于有连接重试功能的客户端,滚动更新 TiDB 同样不会影响业务。对于无法进行重试的客户端,滚动更新 TiDB 则会导致连接到被关闭节点的数据库连接失效,造成部分业务请求失败。对于这类
  • 11.03 20:32:40
    发表了文章 2021-11-03 20:32:40

    为 MySQL 客户端开启 TLS

    本文主要描述了在 Kubernetes 上如何为 TiDB 集群的 MySQL 客户端开启 TLS。TiDB Operator 从 v1.1 开始已经支持为 Kubernetes 上 TiDB 集群开启 MySQL 客户端 TLS。开启步骤为: 为 TiDB Server 颁发一套 Server 端证书,为 MySQL Client 颁发一套 Client 端证书。并创建两个 Secret 对象,Secret 名字分别为:${cluster_name}-tidb-server-secret 和 ${cluster_name}-tidb-client-secret,分别包含前面创建的两套证书;
  • 11.03 20:31:32
    发表了文章 2021-11-03 20:31:32

    使用 DM binary 部署 DM 集群

    本文将介绍如何使用 DM binary 快速部署 DM 集群。 准备工作 下载官方 binary,链接地址:下载的文件中包括子目录 bin 和 conf。bin 目录下包含 dm-master、dm-worker、dmctl 以及 Mydumper 的二进制文件。conf 目录下有相关的示例配置文件。 使用样例 假设在两台服务器上部署 MySQL,在一台服务器上部署 TiDB(mocktikv 模式),另外在三台服务器上部署两个 DM-worker 实例和一个 DM-master 实例。各个节点的信息如下: 实例 服务器地址 MySQL1 192.168.0.1 MySQL2 192.1
  • 11.03 20:28:59
    发表了文章 2021-11-03 20:28:59

    Linux 命令行下搜索工具大盘点,效率提高不止一倍!

    在 Linux 命令行下进行文本关键字的搜索,大家肯定第一时间会想到 grep 命令。grep 命令确实十分强大,但如果需要用到它更加灵活的功能时,可能命令就会显得十分复杂。 于是,为了简化 grep 的语句并达到同等效果,很多业内高手开发出了很多同样强大的工具,在某些程度上甚至可以替代 grep 。 下面我就给大家介绍 5 个常用的命令行搜索工具。如果你不喜欢使用编辑器或 IDE 来查找代码关键字,那么这几个工具将对你十分有帮助。 这 5 个工具有些仅适用于类 Unix 系统,但也有一些是跨平台的搜索速度非常快的工具。 grep 使用 grep 的优势是它几乎可以在任意类 Unix
  • 11.03 20:27:48
    发表了文章 2021-11-03 20:27:48

    刚去面试现场聊了一个多小时的Redis ,题直接拿来分享!

    1.Redis是什么? Redis是一个开放源代码(BSD许可)的内存中数据结构存储,可用作数据库,缓存和消息代理,是一个基于键值对的NoSQl数据库。 2.Redis特性? 速度快 基于键值对的数据结构服务器 丰富的功能、丰富的数据结构 简单稳定 客户端语言多 持久化 主从复制 高可以 & 分布式 3.Redis合适的应用场景? 缓存 排行榜 计数器 分布式会话 分布式锁 社交网络 最新列表 消息系统 4.除了Redis你还知道哪些NoSQL数据库? MongoDB、MemcacheDB、Cassandra、CouchDB、Hypertable、Leveldb。 5.Redis和Memc
  • 11.03 20:27:16
    发表了文章 2021-11-03 20:27:16

    Spring MVC 函数式编程进阶

    1. 前言 上一篇对 Spring MVC 的函数式接口编程进行了简单入门,让很多不知道的同学见识了这种新操作。也有反应这种看起来没有传统写法顺眼,其实大家都一样。但是我们还是要敢于尝试新事物。Java Lambada 刚出来也是被人各种吐槽,现在我在很多项目都见到了它的身影。好了转回正题,本文是对上一篇的延伸,我们继续对 Functional Endpoint 进行一些了解和运用。范式转换其实上一篇已经介绍差不多了,但是一旦你初次接触这种方式往往会面临新的问题。 2. 新的问题 在使用这种风格时我们也会遇到一些新的问题。接下来我们将通过举例来一步步解决这些问题。 2.1 如何异常处理 接
  • 11.03 20:15:57
    发表了文章 2021-11-03 20:15:57

    如何写好 Go 代码

    我写了多年的 Go 微服务,并在写完两本关于 (API Foundations in Go 和 12 Factor Applications with Docker and Go) 主题的书之后,有了一些关于如何写好 Go 代码的想法 但首先,我想给阅读这篇文章的读者解释一点。好代码是主观的。你可能对于好代码这一点,有完全不同的想法,而我们可能只对其中一部分意见一致。另一方面,我们可能都没有错,只是我们从两个角度出发,从而选择了不同的方式解决工程问题,并不意味着意见不一致的不是好代码。 包 包很重要,你可能会反对 - 但是如果你在用 Go 写微服务,你可以将所有代码放在一个包中。当然,下面
  • 11.03 20:15:13
    发表了文章 2021-11-03 20:15:13

    分布式系统 in 2010s :存储之数据库篇

    回看这几年,分布式系统领域出现了很多新东西,特别是云和 AI 的崛起,让这个过去其实不太 sexy 的领域一下到了风口浪尖,在这期间诞生了很多新技术、新思想,让这个古老的领域重新焕发生机。站在 2010s 的尾巴上,我想跟大家一起聊聊分布式系统令人振奋的进化路程,以及谈一些对 2020s 的大胆猜想。 无论哪个时代,存储都是一个重要的话题,今天先聊聊数据库。在过去的几年,数据库技术上出现了几个很明显的趋势。 存储和计算进一步分离 我印象中最早的存储-计算分离的尝试是 Snowflake,Snowflake 团队在 2016 年发表的论文《The Snowflake Elastic Data
  • 11.03 20:14:46
    发表了文章 2021-11-03 20:14:46

    Oracle常用函数

    分享下Oracle数据库的常用函数 一、字符函数 字符函数是oracle中最常用的函数,我们来看看有哪些字符函数: lower(char):将字符串转化为小写的格式。 upper(char):将字符串转化为大写的格式。 length(char):返回字符串的长度。 substr(char, m, n):截取字符串的子串,n代表取n个字符的意思,不是代表取到第n个 replace(char1, search_string, replace_string) instr(C1,C2,I,J) -->判断某字符或字符串是否存在,存在返回出现的位置的索引,否则返回小于1;在一个字符串中搜索指
  • 11.03 20:13:50
    发表了文章 2021-11-03 20:13:50

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

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

    TiDB 的正确使用姿势

    最近这几个月,特别是 TiDB RC1 发布后,越来越多的用户已经开始测试起来,也有很多朋友已经在生产环境中使用,我们这边也陆续的收到了很多用户的测试和使用反馈。非常感谢各位小伙伴和早期用户的厚爱,而且看了这么多场景后,也总结出了一些 TiDB 的使用实践 (其实 Spanner 的最佳实践大部分在 TiDB 中也是适用的,MySQL 最佳实践也是),也是借着 Google Cloud Spanner 发布的东风,看了一下 Spanner 官方的一些最佳实践文档,写篇文章讲讲 TiDB 以及分布式关系型数据库的一些正确的使用姿势,当然,时代也在一直发展,TiDB 也在不停的进化,这篇文章基本上
  • 11.03 20:12:18
    发表了文章 2021-11-03 20:12:18

    回到过去,找回遗失的珍宝 - TiDB 的历史读功能

    数据作为业务的核心,关系着整个业务的生死,所以对于数据库来说,数据的安全性是放在首位的,从宏观角度来看,安全性不仅仅在于的数据库本身足够稳定不会主动的丢失数据,有的时候更是对业务本身甚至人为失误造成损失是否有足够且便捷的应对方案,例如在游戏行业中经常遇到的反作弊(作弊玩家回档)问题,对于金融业务的审计需求等等,如果在数据库层面上提供相关机制,会让业务开发的工作量和复杂度减少很多。 传统的方案会定期备份数据,几天一次,甚至一天一次,把数据全量备份。当意外发生的时候,可以用来还原。但是用备份数据还原,代价还是非常大的,所有备份时间点后的数据都会丢失,你绝对不希望走到这一步。另外全量备份带来的存储
  • 11.03 20:09:38
    发表了文章 2021-11-03 20:09:38

    使用 TypeScript 快速开发 Serverless REST API

    这是一个对于 AWS Lambda Functions 的简单 REST API 项目,使用 TypeScript 语言编写,数据存储采用 MongoDB Atlas 云数据库,从编码到 AWS Lambda 下的单元测试,再到部署、日志调试完整的介绍了如何快速编写一个 FaaS 函数。 本文你将学习到 REST API with typescript MongoDB Atlas data storage Multi-environment management under Serverless Mocha unit tests and lambda-tester interface tes
  • 11.03 20:08:47
    发表了文章 2021-11-03 20:08:47

    从 pingcap tidb 学习使用静态检查工具提升代码质量

    今天想跟大家简单介绍一下如何使用一些 golang 的静态代码检查工具来提升代码质量! 此博客在 GitHub 上公开发布. 如果您有任何问题或疑问,请在此处打开一个 issue。 简介 从去年接触到 TiDB 就开始尝试在社区帮忙修复一些简单的 Bug。最近,我在阅读代码的过程中发现 TiDB 的代码库中有大量的没有必要的类型转换,我就用 GoLand 分析检查出大部分的无效的类型转化, 然后提了一个 PR (CEO 半夜 review 代码,哈哈哈)修复。在这个 PR 中 zz-jason 大神 评论希望能够通过静态检查工具来检测无效的类型转换。 我经过一些研究,决定使用 uncon
  • 11.03 20:06:48
    发表了文章 2021-11-03 20:06:48

    性能测试工具的 Coordinated Omission 问题

    很早之前就看过 Gil 大神的一篇文章《Your Load Generator Is Probably Lying To You - Take The Red Pill And Find Out Why》,里面提到了性能测试工具 coordinated omission 的问题,但当时并没有怎么在意。这几天有人在我们自己的性能测试工具 go-ycsb 上面问了这个问题,我才陡然发现,原来我们也有。 什么是 coordinated omission 首先来说说什么是 coordinated omission。对于绝大多数 benchmark 工具来说,通常都是这样的模型——启动多个线程,每个线
  • 11.03 20:05:43
    发表了文章 2021-11-03 20:05:43

    让拆库拆表见鬼去吧! MySQL 扩展新玩法

    随着数据量的激增,单机数据库存不下了,怎么办?这几乎是所有互联网公司都会遇到的问题。在过去,一直没有一个优雅的解决方案从根本上解决传统关系型数据库扩展性问题,而通常的做法是业务层要把代码改个遍,如果业务上已经用了 MySQL ,没有办法,只能去拆库拆表,动中间件,而这个过程对 DBA 是痛苦的,就算不死也要脱层皮。 最近,一款国人主导开发的开源数据库项目在国内外混的风生水起,不仅在 GitHub 上被推到了 Go Trending 的头条,并且累积 Star 数已近 10000。而在国内,它在被技术爱好者模仿 DB-Engine 制作出的国产数据库排行榜中,位居第二,它就是开源分布式关系型数据
  • 11.03 20:04:47
    发表了文章 2021-11-03 20:04:47

    TiDB 源码学习:关于 Projection Pruning 的细节问题

    查询优化器发现节点之间是 Proj/Aggr --> Proj 模式的时候(也就是某个 Proj 节点的祖先是 Proj或 Aggr 节点的时候),会考虑对子节点做 Projection Pruning 优化。 是否可以消除 Proj 节点的判断依据是:当前的 Proj 节点输出的列是否和其子节点的输出列一样。如果一样,则可以消除。 让我产生疑问的地方是判断输出列是否和子节点一样的代码逻辑,代码如下: func canProjectionBeEliminatedLoose(p *LogicalProjection) bool { for _, expr := range p.Ex
  • 11.03 20:04:15
    发表了文章 2021-11-03 20:04:15

    加快 java 项目 Docker 镜像构建速度的野路子

    最近接手了一个 java 项目,无论是测试环境还是正式环境,都是 CI/CD 系统自动构建和部署的,用的 Docker,被 java 项目的构建速度虐到了。 无论是 Python、Node.js、Go,从零打包镜像的话,在有 Docker cache 的情况下,连续构建镜像的速度是可以很快的。一般的优化方式是先安装依赖模块,然后再编译打包代码库。这样安装依赖的 image layer 可以被 Docker 缓存,下次再构建就不用安装依赖。 Java 项目也可以进行类似的优化,比如在 Dockerfile 当中先执行 mvn dependency:resolve 。可但是... 在 mvn
  • 11.03 20:03:37
    发表了文章 2021-11-03 20:03:37

    TiDB 源代码学习: ranger 模块代码分析

    对数据库技术有一定了解的同行们,应该对 索引前缀匹配 的概念不陌生. 在 TiDB 中 ranger 模块在前缀匹配机制中发挥了一定的作用,所以我想好好了解一下这个模块的代码. ranger 模块介绍 ranger 模块重要的入口是 DetachCondAndBuildRangeForIndex 以及 DetachCondAndBuildRangeForTable 两个函数. 本文以 DetachCondAndBuildRangeForIndex 函数为主要的分析对象,下面简称这个函数位 DCBR DCBR 的入参是: 某个索引信息,主要是用里面的列信息(包含哪些列,以及它们在索引当中
  • 11.03 19:12:49
    发表了文章 2021-11-03 19:12:49

    Elasticsearch系列---数据建模实战

    <p style="font-weight: 400; margin: 10px 0px; padding: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); max-width: 100%; line-height: 1.5; color: rgb(51, 51, 51); font-family: &quot;Helvetica Neue&quot;, Helvetica, &quot;PingFang SC&quot;, Tahoma, Arial, sans-serif; white-space: normal; backgroun
  • 11.02 23:10:51
    发表了文章 2021-11-02 23:10:51

    Hbase compact以及split跟踪

    为了准确了解HBASE内部工作原理,我们需要做一些测试,在大量数据插入的情况下,HBASE内部到底有什么表现? 比如插入速度, hstore compact,split等相关活动,了解了这些才能更好的维护HBASE系统本身。 此次测试会有几轮,所以测试到哪里就写到哪里,我随便找了一张大概120W来的表,我会写一个mapreduce任务,来读取这张表,再写入另外一个测试表: test2, 没有选择更大的表是因为毕竟整个拷贝是需要时间,通常20分钟-30分钟,太大的表,不太利于跟踪。 拷贝过程,HBASE会针对此表有相关的活动日志,依据日志,我们来看看HBASE到底在干什么。 测试开始,
  • 11.02 23:09:51
    发表了文章 2021-11-02 23:09:51

    Linux内核配置文档!!!(make menuconfig)

    一、引言: 本文档的内容大部份内容都是从网上收集而来,然后配合一些新的截图(内核版本:V2.4.19)。在每一配置项后会有一个选择指南的部份,用来指导大家怎么样根据自己的情况来做相应的选择;还有在每一个大项和文档的最后会有一个经验谈,它是一些高手们在应对问题和处理特有硬件时的一些经验(这个还得靠各位)。文档最后会发到网上,到时会根据网友们的回复随时进行更新。 我们的目的是让我们有一个全面的、简单明了内核编译帮手。 [注:] 请大家能够发表自己的经验和想法,使本文能够不断充实!但是最好不要发一些从网cp过来的没有经过自己实践的文章! 1.Code maturity
  • 11.02 23:07:59
    发表了文章 2021-11-02 23:07:59

    HBase的默认配置介绍

    hbase.rootdir 这个目录是region server的共享目录,用来持久化HBase。URL需要是'完全正确'的,还要包含文件系统的scheme。例如,要表示hdfs中的'/hbase'目录,namenode 运行在namenode.example.org的9090端口。则需要设置为hdfs://namenode.example.org:9000/hbase。默认情况下HBase是写到/tmp的。不改这个配置,数据会在重启的时候丢失。 默认: file:///tmp/hbase-${user.name}/hbase hbase.master.port HBase的Maste
  • 11.02 23:06:54
    发表了文章 2021-11-02 23:06:54

    关于oracle的100个常见函数(进阶必备)

    1. ASCII 返回与指定的字符对应的十进制数; SQL&gt; select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2. CHR 给出整数,返回对应的字符; SQL&gt; select chr(54740) zhao,chr(65) chr65 from dual; ZH C -- - 赵 A
  • 发表了文章 2025-05-24

    深入浅出React中的refs

  • 发表了文章 2025-05-24

    日志与追踪的完美融合:OpenTelemetry MDC 实践指南

  • 发表了文章 2025-05-23

    使用 Uber automaxprocs 正确设置 Go 程序线程数

  • 发表了文章 2025-05-22

    【微前端】singleSpa&importHTMLEntry(流程图)源码解析

  • 发表了文章 2025-05-22

    一行代码搞定禁用 web 开发者工具

  • 发表了文章 2025-05-20

    TP6操作pgSQL13报错解决方案

  • 发表了文章 2025-05-20

    Go 1.24 相比 Go 1.23 有哪些值得注意的改动?

  • 发表了文章 2025-05-20

    一文搞懂 GPU 共享方案: NVIDIA Time Slicing

  • 发表了文章 2025-05-20

    借助大模型提升甲方安全黑白灰运营效率实践

  • 发表了文章 2025-05-20

    封装 uniapp 请求库的最佳实践

  • 发表了文章 2025-05-18

    Vue 2 与 Vue 3 的区别:深度对比与迁移指南

  • 发表了文章 2025-05-18

    three.js简单实现一个3D三角函数学习理解

  • 发表了文章 2025-05-18

    如何提高爬虫的抓取效率

  • 发表了文章 2025-05-18

    CentOS系统安装phpStudy的详细步骤和注意事项

  • 发表了文章 2025-05-18

    mysql数据引擎有哪些

  • 发表了文章 2025-05-17

    C语言与操作系统交互探秘

  • 发表了文章 2025-05-17

    Nuxt 3环境变量读取问题解决方案

  • 发表了文章 2025-05-17

    从多维度解构 Lead Time:定义、应用与优化策略

  • 发表了文章 2025-05-17

    mysql数据备份方式,如何恢复?你们的备份策略是什么?

  • 发表了文章 2025-05-17

    Vue与TypeScript:如何实现更强大的前端开发

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