• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql运维之-每天一得01_mysql

mysql 搞代码 7年前 (2018-06-08) 133次浏览 已收录 0个评论

mysql运维之—每日一得01

2015年7月1日——————-

1、MHA修复宕机的机器
首先cat /var/log/manager.log|grep -i "All other slaves should start"确定change master命令,把宕掉的数据库给启动,登陆进去后,slave status为空,使用change master命令设置应用的主节点,启动slave进程
然后设置read_only=1,最后检查复制环境,必须启动mha manager的监控(ps aux|grep perl)并查看状态,删除app1.failover.complete,并把# mysql -e "set global relay_log_purge=0"

2、主从复制中,使用alter event把事件enable,不会影响从库的事件状态SLAVESIDE_DISABLED,进行切换后,现在的主库事件状态SLAVESIDE_DISABLED,需要手动进行enable,可以使用如下方式:
select concat(‘alter event ‘,EVENT_SCHEMA,’.’,EVENT_NAME,’ disable;’) from information_schema.events;


2015年7月2日——————

表结构:

CREATE TABLE `question_2` (
  `qid` int(11) NOT NULL DEFAULT ‘0’,
  `QuestionID` varchar(50) NOT NULL COMMENT ‘只做数据冗余,不做查询条件,不添加索引’,
  `UserID` int(11) DEFAULT NULL,
  `QuestionTitle` varchar(500) NOT NULL,
  `Age` int(11) NOT NULL,
  `Month` int(11) NOT NULL,
  `CatalogID` int(11) NOT NULL,
  `Sex` int(11) NOT NULL,
  `QuestionDesc` longtext NOT NULL,
  `QuestionTag` varchar(400) DEFAULT NULL,
  `Score` int(11) DEFAULT NULL,
  `Anonym` int(11) DEFAULT ‘0’,
  `CommentCount` int(11) NOT NULL DEFAULT ‘0’,
  `Source` int(11) DEFAULT NULL,
  `IsAutoAdd` int(11) DEFAULT ‘0’,
  `QuestionStatus` int(11) DEFAULT NULL,
  `OperateStatus` int(11) DEFAULT ‘0’,
  `OperateTime` datetime DEFAULT NULL,
  `CreateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘展示时间’,
  `UpdateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`qid`),
  KEY `idx_2_uid_ctime_qstatus` (`UserID`,`CreateTime`,`QuestionStatus`,`OperateStatus`),
  KEY `idx_2_qstatus_opstatus_sc_so` (`QuestionStatus`,`OperateStatus`,`Age`,`Score`,`Source`),
  KEY `idx_2_ctime_qstatus_opstatus` (`CreateTime`,`QuestionStatus`,`OperateStatus`,`CatalogID`,`Age`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


select count(*) from question_2;– 4086112
explain select * from `question_2` where `questionstatus` >= 0 and `operatestatus` =2 and `age` in (‘1′,’2’) order by qid desc limit 60000,20;
explain select qid from `question_2` where `questionstatus` >= 0 and `operatestatus` =2 and `age` in (‘1′,’2’) order by qid desc limit 60000,20;
select count(*) from `question_2` where `questionstatus` >= 0;– 4064825/4086112
select count(*) from `question_2` where `questionstatus` >= 0 and `operatestatus` =2;– 3649271/4086112
—————优化后的sql
explain select * from question_2 inner join 
(select qid from `question_2` where `questionstatus` >= 0 and `operatestatus` =2 and `age` in (‘1′,’2’) order by qid desc limit 60000,20) a using (qid);

版权声明:本文为博主原创文章,未经博主允许不得转载。

欢迎大家阅读《mysql运维之-每天一得01_mysql》,跪求各位点评,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql运维之-每天一得01_mysql

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址