201706-14 mysql5.6 online DDL详解 NEW 1.1 Online DDL语法online DDL是在mysql5.6版本后加入的特性,语法:加列 alter table 表名 add column 列名 数据类型,ALGORITHM 算法; 例如: alter table t3 add column name1 varchar(16),ALGORITHM INPLACE/CO... Read More >
201706-13 mysql执行计划explain中key_len计算方式 NEW 概述key_len表示索引使用的字节数,根据这个值可以判断索引的使用情况,特别是在使用联合索引的时候,判断该索引有多少部分被使用到非常重要。key_len的长度计算公式很重要(key_len越小,说明索引效果越好)准备结构和数据在MySQL数据库中,新建表,表名为key_len_demoCREATE TABLE `key_len_demo` ( `id` int(10) UNSIGNED N... Read More >
201706-12 mysql DBA常用SQL诊断问题实战 NEW 【前言】本篇文章介绍一些 MySQL 管理的实用语句及适用的场景。SQL 基于 MySQL 5.7 版本。1. 长事务事务长时间未提交,即使状态为Sleep也可能造成一些锁等待的问题,使用该查询可以查出未提交的事物,常常用于辅助定位问题。select proc.id, proc.user, &nb... Read More >
201706-11 percona toolkit使用之pt-duplicate-key-checker 一:pt-duplicate-key-checker 使用参考地址:http://www.percona.com/doc/percona-toolkit/pt-duplicate-key-checker.html使用方法:pt-duplicate-key-checker [OPTION...] [DSN]使用说明:检查重复或多余的索引和外键,并打印出信息。语法Usage: pt-duplicate-key-checker [OPTIONS] [D... Read More >
201706-10 percona-toolkit运维工具pt-kill使用案例详解 1、工具介绍pt-kill 是一个简单而且很实用的查杀mysql线程和查询的工具,主要是为了防止一些大/复杂/长时间查询占用数据库及系统资源,而对线上业务造成影响的情况。2、常用参数参数含义--user用户--password密码--port端口--host主机--socket本地套接字--match-command过滤参数 匹配状态 --match-info过滤参数 匹配信息 --match-state 过滤参数 ... Read More >
201706-09 percona-toolkit使用的6大锦囊妙计 今儿给大家分享一篇,关于MySQL DBA必备工具的使用。可以方便帮助我们管理我们的数据库,让我们的工作更高效。这款工具是 MySQL 一个重要分支 percona 的,名称叫做 percona-toolkit(一把锋利的瑞士×××),它呢是一组命令的集合。今儿给大家介绍几个我们在生产环境中最长用到的。工具包的下载地址:https://www.percona.com/downloads/percona-toolkit/LATEST/安装过程很简单,先解压:tar -... Read More >
201706-08 mysql查看binlog format格式及查看选项 简介MySQL的binlog主要用于数据恢复及主从复制,binlog 通过binlog events记录了对数据库的修改。binlog有3种记录格式: statement , row 和mixed,通过参数binlog_format配置。binlog_format=STATEMENT,直接记录原始语句,存在nondeterministic的问题(如AUTO_INCREMENT,UUID等),因此容易造成主从数据不一致。binlog_format=ROW ,推荐的配置方式,将对... Read More >
201706-07 mysql新增字段(alter table add column),报错:Duplicate entry 问题执行一个增加字段的DDL语句脚本时,报错,错误如下:Error 1062: Duplicate entry '111-2222' for key 'uniq_user_id'重复执行报相同的错误。根据错误提示的条件去数据库中查询却只能查到一条记录,并没有重复记录。 DDL脚本无法执行,影响后续上线步骤。分析DDL语句脚本中只有1条DDL语句,添加1个字段的语句。表数据量是... Read More >
201706-06 mysql中CPU利用率过高的整体解决思路 背景MySQL 出现响应变慢、无法获取连接、超时等现象。当CPU 利用率超过80%时,可能会出现业务响应变慢、超时、无法连接数据库等现象。故障风险若 MySQL CPU 的利用率长时间处于过高状态,会严重影响数据库的整体性能,极端情况下可能会出现实例 HANG 住的情况。可能原因MySQL 主要是两类线程占用 CPU:系统线程和用户线程。因此 MySQL 独占的云服务器上,仅需关注这两类线程的情况,就能解决大部分的故障场景。用户线程用户线程繁忙,大部分场景都是由“慢查询”引起... Read More >
201706-05 mysql中逻辑读过多innodb_buffer_pool_read_requests详解 背景近期时不时会遇到用户结合 MySQL 指标异常的情况来反馈数据库的问题,可能也有很多公司开始重视 DBA 这个职位了吧(这是好事)。也借机研究一下这些指标的细节,本次解读的指标是innodb_buffer_pool_read_requests。问题描述接到用户的咨询,反馈innodb_buffer_pool_read_requests和 CPU 指标同时出现了突增,希望帮忙定位一下问题的原因,并给出一些建议。原因分析既然带上了具体的指标,那么分析起来就会方便很多,由于 r... Read More >
201706-04 mysql中数据插入的四种模式 简介数据插入的四种模式:Insert into,Replace Into,Insert ignore,on duplicate key update四种模式的区别1、insert into 最普遍的插入,如果表中存在主键相同的数据,执行会报错。2、replace into 如果表中存在与主键相同的数据,则替换掉该主键的记录,反之则插入(存在就替换,反之插入)3、insert ignore 如果表中存在主键相同的数据不在插入该条数据,反之则插入(存在则忽略,反之插入... Read More >
201706-03 Windows下nginx+fastcgi+php的并发阻塞问题 同事接到一个需求,需要调用同一个项目的另一个接口,于是CURL调用接口。代码撸完了,本地测试一下 浏览器一直转圈圈直到超时…… 百思不得其解主要是windows+nginx开发环境遇到的问题,本人很少用windows开发所以也是第一次遇到,整理如下:问题描述:同一个项目中2个接口互相调用 api1 curl调用 api2 ,同时属于项目A问题原因:windows+nginx 其实无法真正的并行执行脚本,linux,mac下无问题,所以api1 cur... Read More >
201706-03 mysql中排序和分页出现重复数据 场景我们使用分页查询时候经常会遇到需要对某个或者某几个字段进行排序,在排序字段有相同值的情况下有可能最后的排序结果不是我们预期的样子,我们来看下一个例子。表里面的rec_time列的数据是有重复的,一般情况下我们分页的sql是这样的。第1页select * from ugc_keyword WHERE 1 order by rec_time desc LIMIT 0,10;结果如下:2610 teacher_general ... Read More >
201706-02 mysql中超大表的删除方法 在mysql中遇到一个大表,大概有17G左右,删除这张表。通常的删除操作可以通过delete、drop、truncate操作,但是有可能导致mysql hang住,必须使用些特殊的方法。1、建立硬链接找到mysql的数据文件,找到这张表在硬盘上的名称,我的是tmplst.frm和tmplst.ibd,通过查看tmplst.ibd的大小到了17G左右,这就是无法删除的原因。其中tmplst是表名。在这个文件夹下,为tmplst,frm和tmplst.ibd分别建立硬链接ln&n... Read More >
201706-02 php闭包的优缺点 闭包函数:临时创建一个没有名称的函数,经常作为回调函数来用。通俗的说就是:子函数可以使用父函数中的局部变量,这种行为叫做闭包。我的理解是: 闭包就是能够读取其他函数内部变量的函数。匿名函数赋值$demo=function($str){ echo $str; } $demo('hello,world');闭包可以从父作用域中继承变量,任何此类型变量都应该用use语言结构传递进去。$message='hello'... Read More >
201706-01 PHP红包分配算法 <?php /** * User: phpmianshi.com * Date: 2020/3/31 * Time: 10:16 */ class redPack { /** * 测试红包生成... Read More >