数据库优化及注意事项

数据库优化有哪些?分别需要注意什么? 数据库设计 尽可能地使用最有效(最小)的数据类型 tinyint(1Byte) smallint(2Byte) mediumint(3Byte) int(4Byte) bigint(8Byte) bad case:int(1)/int(11) 不要将数字存储为字符串,字符转化为数字,用int存储ip而非char(15) 优先使用enum或set,sex enum (‘F’, ‘M’) 避免使用NULL字段 NULL字段很难查询优化 NULL字段的索引需要额外空间 NULL字段的复合索引无效 bad case:`name` char(32) default

数据库
发布于 6年前

Centos 免密码登陆配置

免密码登录配置 在需要免密钥登录其他机器的机器上生成ssh公钥,并复制到需要被登录的机器上 ssh-keygen scp ~/.ssh/id_rsa.pub 目标机器用户名@目标机器ip:/home/目标机器用户名/ 在目标机器处理,首先用目标用户登录机器 cat ~/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys //ssh免密钥登录会检测文件的权限,过于开放和保守都不行~ chmod 700 ~/.ssh 设置 SSH,打开密钥登录功能(默认一般是开通的,不需要修改) 修改/etc/

建站
发布于 6年前

golang 中丰富的字符串格式化

golang中字符串格式化输出 package main import ( "fmt" "os" ) type point struct { x, y int } func main() { // Go提供了几种打印格式,用来格式化一般的Go值,例如 // 下面的%v打印了一个point结构体的对象的值 p := point{1, 2} fmt.Printf("%v\n", p) // 如果所格式化的值是一个结构体对象,那么`%+v`的格式化输出 // 将包括结构体的成员名称和值 fmt.Printf("%

go
发布于 6年前

golang 细节总结

自增和自减 golang里包含其他语言常用的自增i++ 和自减i--,但是在golang里他们是语句而不是表达式,所以j=i++这种是错误的写法,而且golang也不支持++和--放在变量前面如++i的形式。 i++ // i的值+1 i-- // i的值-1 ++i //错误 --i // 错误 j = i-- //错误 短变量声明只能在函数内部不能再外部 s := "" //错误 func main() { s := "" prinltln(s) } new只是一个预定义的函数,它并不是一个关键字 func delta(old, new int) int { return

go
发布于 6年前

goland集成fmt goimports gometalinter

三个工具介绍 go fmt是用来规范go文件格式,比如格式化单个文件 go fmt xxx.go goimports 用来检查导入包,导入依赖包,删除不依赖的包 gometalinter 集成go语言几乎所有检测工具,静态分析代码,包含功能如下 go vet -工具可以帮我们静态分析我们的源码存在的各种问题,例如多余的代码,提前return的逻辑,struct的tag是否符合标准等。 go tool vet --shadow -用来检查作用域里面设置的局部变量名和全局变量名设置一样导致全局变量设置无效的问题 gotype -类型检测用来检测传递过来的变量和预期变量类型一致 gotype -x

go
发布于 6年前

docker常用命令

入门docker书籍推荐:docker-从入门到实践 查看image、container、volume占用的空间大小 docker system df image image本地导入 docker import - [name] < /path/to/image/file 例如导入/tmp/test.export.tar并命名image名为demo docker import - demo < /tmp/test.export.tar image重命名 docker tag oldname:oldversion newname:newversion docker image rm

容器
发布于 6年前

golang优雅重启

目的 不关闭现在的链接 启用新的代码并处理新的请求 中间不能出现拒绝服务 流程 替换可执行程序 发送 SIGUSR2 信号 停止老进程继续接受新请求,并在处理完已有请求后停止 启动新的进程并接受新请求 实现 我根据上面要求写了一个简单的库gracefulServer,可以参考下 比如以gin为例使用该库实现优雅重启,代码如下: package main import ( "github.com/gin-gonic/gin" "time" "net/http" "github.com/yushuailiu/gracefulServer" ) func

go
发布于 6年前

使用WaitGroup等待goroutine执行完成

package main import ( "sync" "fmt" "time" ) func main() { var wg sync.WaitGroup ch := make(chan int) goroutineNum := 2 for i := 0; i < goroutineNum; i ++ { wg.Add(1) go doSomeThing(i, ch, &wg) } for j := 0; j < goroutineNum; j ++

go
发布于 6年前

Centos 搭建 Docker Swarm

Centos docker-ce安装 一般安装步骤 安装依赖包 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 修改软件源 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 切回官方源 # $ sudo yum-config-manager \ # --add-repo \ # https://download.docker.com/linux/

容器
发布于 6年前

shadowsocks配合Proxifier实现全局代理

shadowsocks 使用的 sockets5 代理,而一般只有浏览器支持,所以使用 shadowsocks 可以实现科学上网,但是其他的应用却仍无法科学上网,所以要想实现全局科学上网需要 Proxifier 支持。 Proxifier介绍 Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。支持 64位系统,支持Xp,Vista,Win7,MAC OS ,支持socks4,socks5,http代理协议,支持TCP,UDP协议,可以指定端口,指定IP,指定域名,指定程序等运行模式,兼容性非常好。有点类

工具
发布于 6年前