数据结构与算法
记一次线上bug:请求入参没有trim()导致查询失败
现象:对外提供的api接口,但是某一天查询接口突然出现了异常。
原因:查询到库里面的数据存在空格,而代码中有将数据转换成Map的处理,存在空格的数据为key,导致无法查询到。
解决方案:
使用sql查询数据库中存在多少存在该字段存在空格的数据。
select x_id from x_table where LENGTH(x_id) <> LENGTH(TRIM(x_id))
然后
mysql之数据备份
数据备份主要有2种:物理备份和逻辑备份。
物理备份:通过把数据文件复制出来,达到备份的目的,需要收费。
逻辑备份:把描述数据库结构和内容的信息保存起来,达到备份的目的,免费的。
数据备份的工具:mysqldump,以及用命令行客户端工具mysql和sql语句 source进行数据恢复的方法。
备份数据库中的表:mysqldump -h 服务器 -u 用户 -p 密码 数据库名称 [表名称 … ]
go channel多路复用
1. 为什么需要多路复用
Go 程序在并发处理一些任务的时,会为每一个任务创建一个 goroutine,然后需要根据不同的 goroutine 的返回的结果做不同的处理。
如果按照通常的做法,分别获取每个 channel 的结果:
taskCh1 := make(chan bool)
taskCh2 := make(chan bool)
taskCh3 := make(chan bool)
go
通过栗子来学习MySQL高级知识点(学习,复习,面试都可)
MySQL索引
什么是索引
索引是一种数据结构,可以帮助我们快速查找数据
MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据 库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数 据结构上实现高级查找算法,这种数据结构就是索引。
索引都有哪些数据结构
索引可能有三种数据结构哈希表、有序数