如何使用 MySQL 慢查询日志进行性能优化 - Profiling、mysqldumpslow 实例详解

![使用 MySQL 慢查询日志进行性能优化](https://kalacloud.com/static/890db2f8674d38638465902fd2273979/ef245/head.jpg) 当我们开始关注数据库整体性能优化时,我们需要一套 MySQL 查询分析工具。特别是在开发中大型项目时,往往有数百个查询分布在代码库中的各个角落,并实时对数据库进行大量访问和查询。如果没有一套趁手的分析方法和工具,就很难发现在执行过程中代码的效率瓶颈,我们需要通过这套工具去定位 SQL 语句...阅读全文

Go语言中文网 2021-11-18 00:28:30 HiJiangChuan

Go推荐命名规范

## Go命名规范 好的命名可以提高代码的可读性,特点: - 统一 : 容易猜想,约定俗成 - 简短 :容易书写(Go尤为强调) - 准确 :准确表达意思 ## 核心准则 声明的地方和使用的地方离得越远,名字就建议越详细,相对也会越长,同样上下文没提供有效的描述也是如此。 ## 常见命名 ### Camel命名 - Go推荐驼峰命名方式,不建议使用下划线(包括常量,包名) **Good** ```go userManger...阅读全文

Go语言中文网 2021-11-17 22:27:26 uuid

Go iota 原理和源码剖析

iota 是 Go 语言的一个保留字,用作常量计数器。由于 iota 具有自增特性,所以可以简化数字增长的常量定义。iota 是一个具有魔法的关键字,往往令初学者难以理解其原理和使用方法。本文会从书写方法、使用场景、实现原理以及优缺点等各方面剖析 iota 关键字。 1. 书写方法正确写法:​​​​​​​const ( FirstItem = iota SecondItem ThirdItem ) // 或者 const SingleItem = iota​​​​​​​错...阅读全文

Go语言中文网 2021-11-17 12:19:56 wangshizebin

编写一个接口压测工具

![](https://tva1.sinaimg.cn/large/008i3skNly1gwer3yhu0dj30vn0u00v3.jpg) # 前言 前段时间有个项目即将上线,需要对其中的核心接口进行压测;由于我们的接口是 `gRPC` 协议,找了一圈发现压测工具并不像 `HTTP` 那么多。 最终发现了 [ghz](https://ghz.sh/) 这个工具,功能也非常齐全。 事后我在想为啥做 `gRPC` 压测的工具这么少,是有什么难点嘛?为了验证这个问题于是我准...阅读全文

Go语言中文网 2021-11-16 21:13:37 crossoverJie

Go接口 - interface 最佳实践

interface是GO语言中非常重要的类型,它是用来定义一类方法集,只表示对象的行为(Behavior),GO语言的接口和实现不需要显示关联(也就是常说的duck类型),只要实现了接口所有方法,就可以当做该接口的一个实现,赋值给所有引用该接口的变量,从而满足面向对象编程(OOP)中的两个非常重要原则:依赖倒置、里氏替换。 也正由于这个特点,所以GO接口最佳的实践是:接口尽量的小,根据实际的需求定义的接口大小。 例如:io包体的Reader/Writer ```go type...阅读全文

Go语言中文网 2021-11-15 23:07:29 uuid

Go defer 特性和使用场景

golang 的 defer 语句用于延迟调用。defer 会在当前函数返回之前执行 defer 注册的函数。比如 defer func_defer() 这样语句会让你注册一个函数变量到 defer 的全局链表中,在 defer 语句所在的函数退出之前调用。 defer 可以代替其它语言中 try…catch… 语句,也可以用来处理释放资源等收尾操作,比如关闭文件句柄、关闭数据库连接等。defer 还能用于 panic 的 recovery。 ## 1. defer 的特性 我们先...阅读全文

Go语言中文网 2021-11-15 16:40:57 wangshizebin

招聘Golang开发

公司介绍:1token.trade/ 1Token 是全球数字资产领域领先的机构金融软件提供商,成立于 18 年中,对标 FIS,SS&C,恒生电子等传统金融软件上市公司,目前服务全球 2000 + 专业交易员 / 团队,30 + 全球数字资产领域头部机构客户,总资产承载规模 200 亿美金 +,承载月交易量 500 亿美 +,目前盈利能力良好 软件系统现有客户覆盖金融市场的买方 / 卖方 / 第三方各业务线,包括对冲 / 多策略基金、资管机构、FOF/MOM、机构矿工、RIA、主经纪商...阅读全文

Go语言中文网 2021-11-15 12:37:42 Candy_yu

用PHP轻松完成一个分布式事务TCC,保姆级教程

什么是TCC,TCC是Try、Confirm、Cancel三个词语的缩写,最早是由 Pat Helland 于 2007 年发表的一篇名为《Life beyond Distributed Transactions:an Apostate’s Opinion》的论文提出。 ## TCC组成 TCC分为3个阶段 - Try 阶段:尝试执行,完成所有业务检查(一致性), 预留必须业务资源(准隔离性) - Confirm 阶段:如果所有分支的Try都成功了,则走到Confirm阶段。Co...阅读全文

Go语言中文网 2021-11-15 09:49:01 yedf

jsonkeys - 获取 JSON key 的先后顺序

# jsonkeys - 获取 JSON key 的先后顺序 > GitHub - [jsonkeys](https://github.com/gitHusband/goutils/tree/master/jsonkeys) 当使用GO 标准库 `encoding/json` 解析动态JSON 的时候,我们将结果解析为 `map[string]interface{}`。 而 GO `map` 类型的key 是无序的,也就是说你不能确定JSON key 的先后顺序。 如果你...阅读全文

Go语言中文网 2021-11-13 16:54:05 gzLin

Go defer 原理和源码剖析

Go 语言中有一个非常有用的保留字 defer,defer 语句可以调用一个函数,该函数的执行被推迟到包裹它的函数返回时执行。 defer 语句调用的函数,要么是因为包裹它的函数执行了 return 语句,到达了函数体的末端,要么是因为对应的 goroutine 发生了 panic。 在实际的 go 语言程序中,defer 语句可以代替其它语言中 try…catch… 的作用,也可以用来处理释放资源等收尾操作,比如关闭文件句柄、关闭数据库连接等。 ### 1. 编译器编译 de...阅读全文

Go语言中文网 2021-11-12 18:37:29 wangshizebin

分享一套golang实现的 IM 系统,一键部署服务端,客户端SDK全平台支持,可以替代IM云服务

开篇 自互联网诞生以来,即时通讯平台就一直存在。从世界范围来看,WhatsApp、Facebook、 微信、Telegram是领先的消息平台,用户主要使用这些平台与家人和朋友保持联系。随着互联网的发展,人与人之间的沟通是刚需,无处不在,几乎所有的APP都集成IM功能,从社交、游戏、到生活中的方方面面,打车、找房等。可以说IM作为一种通讯能力,已经成为互联网上的基础设施,成为许多APP不可或缺的功能。现在绝大多数APP使用IM云服务商的SDK,方便接入的同时,也带来了几个深层次的问题:(1)...阅读全文

Go语言中文网 2021-11-12 15:57:17 OpenIM

一文搞懂 ZigZag 算法及 Go 语言的实现

> 收录于[《深入微服务》](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzIzNzQwNTQwNg==&action=getalbum&album_id=2126863251039633410&scene=173&from_msgid=2247484609&from_itemidx=1&count=3&nolastread=1#wechat_redirect),作者 “老苗” 我原本是想研究 Protobuf 原理呢,但在研究过程中发现 ...阅读全文

Go语言中文网 2021-11-12 12:07:36 miaogaolin

go 堆排序

# go 堆排序 ## 堆排序 堆排序本身需要将数组看作一个完全二叉树,然后动态的将这棵树维护成一个 大根堆或小根堆 ## code ```go package main import"fmt" func main() { // 要将数组看作一个完全二叉树 arrs := []int{3,2,7,5,9,1,7,8,4,6,5,7} fmt.Printf("before arr is: %v\n", arrs) heapSor...阅读全文

Go语言中文网 2021-11-12 01:23:10 letterbeezps

如何在 MySQL / MariaDB 中导入导出数据,导入导出数据库文件、Excel、CSV

![如何在 MySQL / MariaDB 中导入导出数据,导入导出数据库文件、Excel、CSV](https://kalacloud.com/static/958ff4b31519eee028bfe8afb7cd0421/ef245/head.jpg) 在日常的数据库维护工作中,经常需要对数据库进行导入导出操作,备份、分析、迁移数据都需要用到导入导出功能,在本教程中将详细讲解所有常见的 MySQL 和 MariaDB 中导入导出数据的方法(注意:MySQL 和 MariaDB 两个数据...阅读全文

Go语言中文网 2021-11-10 20:57:05 HiJiangChuan

从 java 到 Go

## 前言 > 换了一家新公司,没想到把原来用了10多年的 Java 也换没了。公司开始向 k8s 转换,需要学习 go 语言。外面又很难招到 go 的熟练工,所以招 Java 人员进来自学成才。从熟悉的领域转到陌生的领域,总有些不适感。把期间遇到的问题和需要注意的点以及些许吐槽在此记录一下。不去评判两种语言的好与坏。 ### go 中少得可怜的集合类 Java 中的集合类是丰富多彩的,这也造成了,初学者的选择困难症。了解得不够仔细的话,经常是随便选。而 go 中则少得可怜,原生的只有 ...阅读全文

Go语言中文网 2021-11-10 11:32:02 zonghsh001

一文搞懂 ZigZag 算法及 Go 语言的实现

> 收录于[《深入微服务》](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzIzNzQwNTQwNg==&action=getalbum&album_id=2126863251039633410&scene=173&from_msgid=2247484609&from_itemidx=1&count=3&nolastread=1#wechat_redirect),作者 “老苗” 我原本是想研究 Protobuf 原理呢,但在研究过程中发现 ...阅读全文

Go语言中文网 2021-11-10 10:06:34 miaogaolin