MySQL开发规范-持续更新
一、基础规范 统一使用utf8mb4字符集和utf8mb4_general_ci字符排序规则,utf8mb4字符集是utf8的超集,而且还支持emoji字符。 表存储引擎使用InnoDB存储引擎,默认就是。 隔离级别使用READ-COMMITTED(binlog格式使用ROW)。 统一命名规范,默认全小写,禁用关键字和合理使用前缀。 严禁在数据库中明文存储……
MySQL内存使用分析(OOM分析)
一、MySQL如何使用内存? 首先,介绍MySQL使用内存的一些方法: 会话级别的内存消耗(连接私有内存):如 sort_buffer_size 等,每个会话都会开辟一个 sort_buffer_size 来进行排序操作。 全局的内存消耗(共享内存):例如 innodb_buffer_pool_size 等,全局共享的内存段。 MySQL内存计算器 全……
HAproxy+Keepalied做MySQL负载均衡
HAproxy介绍 HAProxy详细介绍(一) HAProxy安装配置(二) Keepalive介绍 高可用软件keepalived详解 应用服务器对只读的应用程序连接虚拟IP地址,连接到haproxy,然后通过haproxy将TCP协议转移到下面的2个MySQL SLAVE数据库服务器中。Haproxy在此做4层的TCP交换服务。keepalived为了……
MySQL批量创建多库多表示例
由于业务需要对MySQL数据库进行分库分表操作,大概需要建立10个库,每个库根据日期建立一年的表,格式如下: 库:meta_file_1-10 表:meta_file_20170101-20171231 还好库和表名称是规律的,并且表结构相同,所以可以使用脚本处理。 CREATE TABLE mate_file_1( ……
MySQL特性及架构
一、MySQL数据库特性 1. 内部构件和可移植性 使用C和C++编写,保证了源代码的可移植性。 支持多种平台。 提供众多编程语言的API接口。 采用核心线程和完全多线程(使用多CPU)。 提供事务性和非事务性存储引擎。 使用极快的”B树”磁盘表和索引压缩。 极快的基于线程的内存分配系统。 提供TCP/IP、ODBC和JDBC等多种数据库连接途径。 存储器中……
找出MySQL服务器发生SWAP的原因?
首先,讲一下MySQL的内存消耗分为: 会话级别的内存消耗:如 sort_buffer_size 等,每个会话都会开辟一个 sort_buffer_size 来进行排序操作。 全局的内存消耗:例如 innodb_buffer_pool_size 等,全局共享的内存段。 关于会话级的内存消耗解释如下: read_buffer_size,sort_buffe……
MySQL为什么要关闭Query Cache?
当你的数据库打开了Query Cache(简称QC)功能后,数据库在执行SELECT语句时,会将其结果放到QC中,当下一次处理同样的SELECT请求时,数据库就会从QC取得结果,而不需要去数据表中查询。 在这个”Cache为王”的时代,我们总是通过不同的方式去缓存我们的结果从而提高响应效率,但一个缓存机制是否有效,效果如何,却是一……
MySQL最优配置模板( 5.6&5.7)
MySQL 5.6&5.7配置文件(姜总提供) [mysql] default-character-set=utf8mb4 user = root password = 123456 port = 3306 socket = /tmp/mysqld.sock prompt="\u@\h \d>" ……
MySQL主库 crash-safe 与 binlog 关系?
一、什么是CrashSafe? CrashSafe指MySQL服务器宕机重启后,能够保证: – 所有已经提交的事务的数据仍然存在。 – 所有没有提交的事务的数据自动回滚。 Innodb通过Redo Log和Undo Log可以保证以上两点。为了保证严格的CrashSafe,必须要在每个事务提交的时候,将Redo Log写入硬件存储。这……
MySQL基于SSL复制的配置过程
MySQL的主从复制默认是明文传送的,如果在生产环境中跨网络传送,数据的安全性就无法完全保证,为了解决这一问题,我们需要一种安全的方式进行传送,即基于SSL加密进行数据传输。在进行SSL加密传输时可能需要先了解CA、证书及SSL相关知识才能更好地明白为何基于SSL的传输就会更加安全。CA、证书及SSL相关知识在本章节不会多加一说明,详情可以看本博客提供的“信……