核心规则 1、尽量不要在数据库中做运算 尽可能简单应用MySQL;不要在数据库中做运算,将复杂运算移到程序端。 如md5()\Order by Rand() 2、控制单表数据量 纯INT不超过1000W;含CHAR不超过500W 合理分表不超载;USERID\DATE\AREA 建议单库不超过300表。 3、优化表字段配置 1、表字段数少而精 IO高效、全表遍历、表修复快、提高并发、修改表格式快 2、单表1G体积,5…
概述 对MySQL服务的数据进行备份使用最多的工具也就是官方的MySQLDump了。在数据比较重要的情况下,使用此官方工具需要注意一些细节;否则有可能出现“备份数据不全”、“数据一致性被破坏”等备份失败的情况。 1、MySQLDump工具备份MyISAM数据库使用lock-tables参数对整个库加共享锁;备份InnoDB数据库使用single-transaction参数对数据库导出建立事务(对库加共享锁)。 2、M…
pt-query-digest 慢日志分析工具 可以分析的日志包括MySQL记录的日志(二进制日志,慢日志等)、processlist和TCPdump数据。 Usage pt-query-digest [OPTIONS] [FILES] [DSN] pt-query-digest具有两个功能:查询查看(--review)和查询历史(--history)。 当使用该--review 选项时,所有唯一查询将保存到数据库中…
官方文档 SET GLOBAL sql_slave_skip_counter Syntax SET GLOBAL sql_slave_skip_counter = N This statement skips the next N events from the master. This is useful for recovering from replication stops caused by a state…
pt-table-checksum 是Percona-Toolkit的组件之一,用于检测Mysql数据库的主从架构中主库和从库间的数据一致性。 原理 pt-table-checksum会对校验的表数据进行数据块(数据块大小根据服务负载情况调整)划分,并对数据块数据进行checksun处理;存储在建立的表中。 在主库中执行基于statemnet的sql语句,生成数据块的checksum;在从库执行相同的sql语句,获取…
复制功能可将来自一台MySQL数据库服务器(主服务器)的数据复制到一台或多台MySQL数据库服务器(从服务器)。 默认情况下复制是异步的; SLAVE不需要永久连接以接收来自Master的更新。根据配置,您可以复制数据库中的所有数据库,选定数据库或甚至选定的表。 细节说明 设定复制的数据 每个SLAVE都会收到MASTER二进制日志的全部内容的副本。 SLAVE可以决定执行二进制日志中的哪些语句。如特定的数据库或者选…
数据库备份机制设定 大家在维护项目数据库时,为了不丢失数据,需要对数据库定时做备份。 数据库备份中要注意的事项都有哪些那? 1、全量备份 1.1、为了保证数据的一致性,MyISAM存储引擎需要锁库锁表进行全量备份 1.2、为了保证数据的一致性,Innodb存储引擎至少需要使用备份事务 1.3、总之备份过程中,对整个数据库设置了共享锁;因此要使用从库进行备份,不影响线上业务。 1.4、全量备份的频率 1.5、全量备份时…
MySQL官方提供的数据库逻辑备份的工具,可以将数据库对象定义和表数据转储到文件中(sql,csv,xml)。 优点和缺点 逻辑备份工具;将数据库备份为通用形式的SQL文件。对于InnoDB表可以在线备份 单线程,数据量大的时候,备份时间长 备份时会查询所有的数据,这可能会把内存中的热点数据刷掉 InnoDB存储引擎常用参数 --single-transaction --master-data=2 --trigger…
概述 根据MySQL 5.7 的官方文档,列出了442个内置函数和表达式。 默认情况下,函数名和它后面的括号之间不能有空格。这有助于MySQL解析器区分函数调用和对具有与函数相同名称的表或列的引用。但是,函数参数周围的空格是允许的。 表达式中的类型转换 表达式是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。 涉及到的场景有: 数字型转换为字符型 字符型转换为数字型 注…
概述 错误日志包含mysqld 启动和关闭时间的记录。它还包含诊断消息,如服务器启动和关闭期间以及服务器运行期间发生的错误,警告和注释。例如,如果mysqld注意到需要自动检查或修复表,它会向错误日志写入消息。 用于启动和管理mysqld服务的mysqld_safe进程会将消息写入错误日志中。例如,当mysqld_safe发现异常mysqld退出时,它会重新启动 mysqld并将mysqld restarted消息写…