Mysql数据库设计规范
一. 数据库设计规范1. 数据库命名规范
规范
原因
所有数据库对象名称必须使用小写字母并用下划线分隔 | Mysql是对大小写敏感的
所有数据库对象名称禁止使用Mysql保留关键字 | 对SQL查询造成影响,关键字查询地址
数据库对象的命名要能做到见名识义,并且最好不要超过32个字符 | 易于开发和维护
临时库表必须以tmp_为前缀并以日期为后缀 | 易于区分临时库表和建立时间
备份库表必须与bak_为前缀并以日期为后缀 | 易于区分备份库表和建立时间
所有存储相同数据的列名和列类型必须一致 | 易于数据库性能,例如:逻辑外键
2. 数据库基本设计规范
规范
原因
所有表必须使用InnoDB存储引擎 | 1. 支持事务,行级锁,更好的恢复性,高并发下性能更好 2. Mysql5.5之前的默认存储引擎是Myisam,5.6的默认引擎是InnoDB
数据库和表的字符集统一使用UTF8 | 1. 兼容性好 2. 避免字符集转换产生的乱码 3. Utf8字符集汉字占用3个字节,ASCII码占用1个字节
所有表和字段都需要添加注释 | 1. 使用comment从 ...
Msql故障处理和优化
数据库访问故障处理Access denied for user ‘root‘@’xxx.xxx.xxx.xxx’ (using password: YES)
密码不正确
未对IP进行授权,%不包含localhost
123mysql -uroot -pgrant all privileges on *.* to 账户名@'%' identified by '账户密码';
网络是否畅通
ERROR 1153 (08S01) at line 38: Got a packet bigger than ‘max_allowed_packet’ bytes
问题原因:Mysql接收数据包问题
解决方法:
```sh修改配置文件vi /etc/my.cnf在最后添加一行:max_allowed_packet=16M123452. ```sql # mysql命令行执行命令 # 单位是字节,这里设置位置16M SET PERSIST max_allowed_packet=16*1024*1024
Sql优化Sql改写优化
使用o ...
Mysql基本运维知识总结
Mysql参数查询12方法1. select @@[参数名]方法2. show variables like [参数名]%
Mysql版本的问题Mysql的发行版有哪些
Mysql官方版本(社区版,企业版)
Percona Mysql
与mysql官方版本兼容
具有mysql企业版的功能
性能比社区版的好
版本会比mysql官方版落后
MariaDB
不完全兼容mysql官方版本
各个发行版本之间的区别服务器特性
特性
Mysql
Percona Mysql
MariaDB
是否开源
开源
开源
开源
是否支持分区表
支持
支持
支持
使用的引擎
InnoDB
XtraDB
XtraDB
运维监控工具
企业版提供,社区版不提供
Percon Monitor工具
Monyog
高可用特性
Mysql
Percona Mysql
MariaDB
基于日志点复制
基于日志点复制
基于日志点复制
基于Gtid复制
基于Gtid复制
基于Gtid复制,但Gtid同Mysql不兼容
MGR
MGR & PXC
Galera Clus ...
Golang反射reflect解析
反射基本函数 reflect.Type 主要提供关于类型相关的信息,所以它和 _type 关联比较紧密;
reflect.Value 则结合 _type 和 data 两者,因此可以获取甚至改变类型的值。
12345func TypeOf(i interface{}) Type // 返回i的对象类型func ValueOf(i interface{}) Value // 返回i的Value(如果要对i进行修改的话传入变量地址) reflect.Indirect(v value) // 返回v获取了该指针指向的值reflect.New(typ Type) // 返回一个新的type类型的对象。
TypeOf123456789101112func TypeOf(i interface{}) Type { // 将i转成emptyInterface eface := *(*emptyInterface)(unsafe.Pointer(&i)) // emptyInterface的*rtype实现了T ...
MongoDB4.0配置说明
官方文档地址:https://docs.mongodb.com/manual/reference/configuration-options/
systemLogsystemLog官方文档地址:https://docs.mongodb.com/manual/reference/configuration-options/#security-options
1234567891011121314151617systemLog: verbosity: <int> quiet: <boolean> traceAllExceptions: <boolean> syslogFacility: <string> path: <string> logAppend: <boolean> logRotate: <string> destination: <string> timeStampFormat: <string> component: ac ...
Docker部署MongoDB4.1基于X.509认证的副本集集群
注意点
虽然部署的mongodb的版本是4.1.3,但是它使用的配置和命令都是4.2版本的(→_→)
最明显的改变时ssl的配置和命令都改成了tls
环境
ip
端口
角色
192.168.43.111
[27001,27002.27003]
shardsvr
192.168.43.112
[27001,27002.27003]
shardsvr
192.168.43.113
[27001,27002.27003]
shardsvr
192.168.43.111
[27010,27020]
configsvr,mongos
192.168.43.112
[27010,27020]
configsvr,mongos
192.168.43.113
[27010,27020]
configsvr,mongos
建立相关目录和配置文件执行命令的服务器192.168.43.111,192.168.43.112,192.168.43.113
开启防火墙端口123456firewall-cmd --zone=public --add-port=27001/tcp ...
golang的pprof基本使用
什么是pprofpprof 是用于可视化和分析性能分析的工具
开启pprof1234567891011121314151617181920212223242526272829303132package mainimport ( "log" "net/http" _ "net/http/pprof" // pprof会自动注册 handler 到 http server,从而开启pprof "os" "runtime" "time")func main() { // 限制 CPU 使用数,避免过载 runtime.GOMAXPROCS(1) // 开启对锁调用的跟踪 runtime.SetMutexProfileFraction(1) // 开启对阻塞操作的跟踪 runtime.SetBlockProfileRate(1) go func() { // 启动一个 http server if err := http.ListenAndServe ...
golang底层解析之Context
什么是context context,中文译作“上下文”,它是 goroutine 的上下文,包含 goroutine 的运行状态、环境、现场等信息。
context 主要用来在 goroutine 之间传递上下文信息,包括:取消信号、超时时间、截止时间、k-v 等。
context.Context 类型的值可以协调多个 groutine 中的代码执行“取消”操作,并且可以存储键值对。最重要的是它是并发安全的。
与它协作的 API 都可以由外部控制执行“取消”操作,例如:取消一个 HTTP 请求的执行。
Context底层解析整体概览
名称
类型
作用
CancelFunc:func()
Func
取消,关闭函数
Context
interface
定义了Context的接口方法
cancelCtx
struct
可以取消的Context
canceler
interface
Context 取消接口,定义了两个方法
deadlineExceededError
struct
定义了Context返回错误
emptyCtx
struct
实现了 C ...
GitLab-ce+GitLab-runner搭建
docker的方式安装
创建docker-compose.yml文件
123456789101112131415161718192021222324252627282930313233version: '3'services: gitlab-ce: image: gitlab/gitlab-ce:11.8.0-ce.0 ports: - 7080:80 restart: always hostname: gitlab-ce volumes: - /home/gitlab/opt:/var/opt/gitlab - /home/gitlab/git:/etc/gitlab - /home/gitlab/log:/var/log/gitlab - /etc/localtime:/etc/localtime:ro networks: - gitlab_network container_name: gitlab-ce gitlab-runner: im ...
jenkins插件安装
Maven插件名称:Maven Integration
系统管理->全局设置 安装maven
在创建一个maven项目并进行构建,就可以在jenkins_home/tools 中看到maven的配置文件信息
Docker插件名称:CloudBees Docker Build and Publish
ssh名称:Publish Over SSH获取点 【高级】输入针对该服务器的密钥
Role-Based Strategy 用户权限管理插件https://blog.csdn.net/u013066244/article/details/53407985