mysql
文章平均质量分 62
zkaipmoo
这个作者很懒,什么都没留下…
展开
-
在线修改MySQL大表的表结构
由于某个临时需求,需要给在线MySQL的某个超过千万的表增加一个字段。此表在设计之时完全按照需求实现,并没有多余的保留字段。 我们知道在MySQL中如果要执行ALTER TABLE操作,MySQL会通过制作原来表的一个临时副本来工作。对于表结构的修改在副本上施行,然后将新表替换原始表,此时会产生锁表,用户可以从原始表读取数据,而用户的更新和写入操作都会被lock,待新表准备好后写入新表。 这对于转载 2016-10-14 15:19:04 · 1209 阅读 · 0 评论 -
使用MySQL自身复制来恢复binlog
在MySQL手册中一直是推荐使用mysqlbinlog工具来实现指定时间点的数据恢复,事实上,这是一个经常"让人郁闷"的办法。更好的办法是,使用MySQL内部复制线程中的SQL Thread来做恢复。这个idea来自Lazydba同学;在Google稍作搜索,在Xaprb上Baron Schwartz也很早提到了使用类似的方法来恢复binlog,在那篇讨论中,还可以看到Jeremy转载 2015-01-04 16:55:23 · 641 阅读 · 0 评论 -
脚本分享-两个shell备份mysql的脚本
分享两个shell script脚本,用来备份mysql用的。第一个脚本是使用mysqldump命令来备份,第二个脚本是使用innobackupex也就是xtrabackup程序来做备份。他们的主要区别在于:mysqldump优点:备份出来的数据比较小,基本算是纯数据,如果是innodb引擎,数据都在内存里面的话,不会发生物理磁盘的读操作。mysqldump缺点:不支持增量备份,会原创 2014-12-30 15:03:46 · 1133 阅读 · 0 评论 -
分享一片比较全介绍myisam和innodb的区别
一、简单介绍1.MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合。 2.InnoDB:支持事务安全的引擎,支持外键、行锁、事务是他的最大转载 2014-12-30 15:37:27 · 613 阅读 · 0 评论 -
修复mysql表
MySQL修复表的方法我们经常会用到,下面就教您两个MySQL修复表的小技巧,希望对您学习MySQL修复表方面能有所帮助。在长时间使用MySQL后,数据库可能会出现一些问题。大多数问题可以通过简单的操作进行快速修复。下面介绍两种MySQL修复表的方法。1. myisamchk使用myisamchk必须暂时停止MySQL 服务器。例如,我们要检修blog数据库。执行以下操作:# se原创 2014-12-30 18:10:50 · 643 阅读 · 0 评论 -
mysql高可用性探究
1.mmm方案MMM即:Master-Master Replication Manager For MySQL,MySQL主主复制管理器的功能包括监控、故障转移和等一系列脚本构成,这个脚本也能对基本的主从复制配置的任意数量的从服务器进行读负载均衡,所以可以用它来实现一组居于复制的虚拟IP,同时它还有数据备份、节点之间重新同步功能的能力.IPDB1:192.168.11.198原创 2015-01-06 16:02:37 · 789 阅读 · 0 评论 -
批量kill mysql进程
mysql服务器负载太大,需要杀掉很多查询的进程原创 2014-08-21 17:37:44 · 4815 阅读 · 0 评论 -
sql error:Last_Error: Relay log read failure: Could not parse relay log event entry. The possible re
show slave status\G:Last_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbin原创 2014-07-31 15:45:42 · 2268 阅读 · 0 评论 -
mysql压力测试
下图是运行mysqlslap -a -c 500 -i 10 -uroot -p123456测试时mysql的连接进程数:mysqlslap压力测试使用语法如下:# mysqlslap [options]常用参数 [options] 详细说明:--auto-generate-sql, -a 自动生成测试表和数据,表示用mysqlslap工具自己生成的原创 2014-07-30 08:16:12 · 758 阅读 · 0 评论 -
MySQL 慢查询日志分析及可视化结果
1. pt-query-digest分析慢查询日志pt-query-digest --report slow.log2. 报告最近半个小时的慢查询:pt-query-digest --report --since 1800s slow.log3. 报告一个时间段的转载 2014-07-30 08:08:15 · 1828 阅读 · 0 评论 -
mysql mysqldump获取一个小的样本库
需求变更要为开发人员搭建一套与线上的环境一样的数据库,线上的库比较大,恢复起来耗时耗力,再说,测试环境没必要要完完整整的线上数据。那么该如何获取一个小的样本库呢? 比如我只要线上10000条的数据。请看本文内容。只需要在mysqldump指定’–where=”true LIMIT N”‘即可,N为记录数。1. 获取www_ttlsa_com库下每个表的10000行数据:# my转载 2014-07-30 07:38:49 · 677 阅读 · 0 评论 -
总结mysql缓存配置选项
首先我们来看一个公式,MySQL中内存分为全局内存和线程内存两大部分(其实并不全部,只是影响比较大的 部分):复制代码 代码如下:per_thread_buffers=(read_buffer_size+read_rnd_buffer_size+sort_buffer_size+thread_stack+join_buffer_size+binlog_cache_size+tmp_ta原创 2015-01-05 14:11:41 · 1188 阅读 · 0 评论 -
mysql语句详细查询时间
I recently worked on an uncommon slow query: less than 100 rows were read and returned, the whole dataset was fitting in memory but the query took several seconds to run. Long story short: the query w原创 2015-01-05 11:25:36 · 657 阅读 · 0 评论 -
使用mysqladmin ext了解MySQL运行状态
mysqladmin是MySQL一个重要的客户端,最常见的是使用它来关闭数据库,除此,该命令还可以了解MySQL运行状态、进程信息、进程杀死等。本文介绍一下如何使用mysqladmin extended-status(因为没有"歧义",所以可以使用ext代替)了解MySQL的运行状态。1. 使用-r/-i参数使用mysqladmin extended-status命令可以获原创 2015-01-04 16:28:31 · 1230 阅读 · 0 评论 -
mysql主从同步延迟分析
一、MySQL数据库主从同步延迟 要了解MySQL数据库主从同步延迟原理,我们先从MySQL的数据库主从复制原理说起:MySQL的主从复制都是单线程的操作,主库对所有DDL和DML产生的日志写进binlog,由于binlog是顺序写,所以效率很高。Slave的IO Thread线程从主库中bin log中读取取日志。 Slave的SQL Thread线程将主库的DDL和DML操作事件在slave原创 2016-10-14 15:16:32 · 549 阅读 · 0 评论 -
mysql数据类型与索引调优
varcha比固定长度占用更少存储空间,只占用需要空间,但是需要1字节保存长度更小通常更好简单就好,避免null确定类型使用enum代替字符串类型innnodb存储引擎事务性外键行级锁多版本按照主键聚集所有索引包含主键列优化的缓存:innodb把数据和内存缓存缓冲到缓存池 自动构建哈希索引未压缩索引:索引没有使用前缀压缩,阻塞auto_i原创 2016-06-16 11:22:03 · 610 阅读 · 0 评论 -
防范sql注入
1、关于SQL注入互联网很危险,信息及数据安全很重要,SQL注入是最常见的入侵手段之一,其技术门槛低、成本低、收益大,颇受各层次的黑客们所青睐。一般来说,SQL注入的手法是利用各种机会将恶意SQL代码添加到程序参数中,并最终被服务器端执行,造成不良后果。例如,我们访问接口 http://imysql.com/user.php?userid=123 来根据userid获取用户转载 2016-07-01 15:24:33 · 568 阅读 · 0 评论 -
线上环境到底要不要开启query cache
Query Cache(查询缓存,以下简称QC)存储SELECT语句及其产生的数据结果,特别适用于:频繁提交同一个语句,并且该表数据变化不是很频繁的场景,例如一些静态页面,或者页面中的某块不经常发生变化的信息。QC有可能会从InnoDB Buffer Pool或者MyISAM key buffer里读取结果。由于QC需要缓存最新数据结果,因此表数据发生任何变化(INSERT、U转载 2016-06-30 16:13:17 · 931 阅读 · 0 评论 -
阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费
阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费背景早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。ps. 目前内部使用的同步,已经支翻译 2016-01-12 11:15:45 · 606 阅读 · 0 评论 -
一个例子与InnoDB索引的几个概念
1、一个简单的sql语句问题 假设当前我们有一个表记录用户信息,结构如下: a) 表结构CREATE TABLE `u` ( `id` int(11) NOT NULL DEFAULT ‘0′, `regdate` int(1) unsigned, ….. PRIMARY KEY (`id`), KEY转载 2015-03-05 15:18:15 · 551 阅读 · 0 评论 -
Redis被bgsave和bgrewriteaof阻塞的解决方法
Redis 是一个性能非常高效的内存 Key-Value 存储服务, 同时它还具有两个非常重要的特性: 1. 持久化; 2. Value 数据结构. 这两个特性让它在不少场景轻松击败了 Memcached 和 Casandra 等.Redis 的持久化在两种方式: Snapshotting(快照) 和 Append-only file(aof). 在一个采用了 aof 模式的 Redis 服务转载 2015-03-04 16:22:06 · 2132 阅读 · 0 评论 -
SQL慢查询分析,原因及优化
问题描述一个用户反映线上一个SQL语句执行时间慢得无法接受。SQL语句看上去很简单(本文描述中修改了表名和字段名):SELECT count(*) FROM a JOIN b ON a.`S` = b.`S` WHERE a.`L` > '2014-03-30 00:55:00' AND a.`L` < '2014-03-30 01:00:00' ; 且查询需要的字段都建了索引转载 2015-03-05 15:22:52 · 2400 阅读 · 0 评论 -
mysq5.5和mysq5.6事务区别
先说一下mysql5.5跳过事务方法GTID跳过有两种方法,一种是普通的跳过一个事务的方法,另外一个是在基于主库搭建新的slave的时候.一、普通跳过一个事务的方法。通过show slave status\G找到冲突的GTID号.然后执行SET gtid_next = ‘冲突的GTID号’;BEGIN;COMMIT;SET gtid_next = ‘AUTOMA原创 2015-01-06 16:36:21 · 1529 阅读 · 0 评论 -
mysqlsla分析MySQL数据库慢查询日志
mysqlsla是hackmysql.com推出的一款MySQL的日志分析工具,功能非常强大. 数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等。一、使用1# mysqlsla -lt slow mysql-slow.log或者1# mysql原创 2014-07-30 07:36:55 · 1146 阅读 · 0 评论 -
mysql 配置向导
Percona为MySQL数据库管理员,系统管理员和开发人员提供了一个免费在线生产工具:配置向导和查询顾问。配置向导:根据mysql版本,应用平台环境等信息生成一份最佳实践的my.cnf配置参数文件,以达到更好的mysql数据库性能,避免人工配置的耗时、复杂性和风险。查询顾问:分析mysql的查询语句,并得到资深专家的建议。地址如下:https://tools.percon原创 2014-07-30 08:17:22 · 950 阅读 · 0 评论 -
mysql监控工具实战
1.innotop使用wget http://innotop.googlecode.com/files/innotop-1.9.0.tar.gzCPAN安装使用:http://search.cpan.org/~andk/CPAN-1.9402/lib/CPAN.pm原创 2014-05-29 16:57:27 · 960 阅读 · 0 评论 -
mysqlsla的安装与使用
mysqlsla的安装与使用1.下载 mysqlsla[root@localhost tmp]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz--19:45:45-- http://hackmysql.com/scripts/mysqlsla-2.03.tar.gzResolving hackmysql.com.原创 2013-09-26 19:01:32 · 951 阅读 · 0 评论 -
mysql慢日志 :slow query log 分析数据
目录:1 慢查询日志 配置2 查看慢查询日志工具:mysqldumpslow mysqlsla3. 五种mysql日志分析工具比拼 ---------------------------------------------------------------------------转载 2013-09-26 19:00:18 · 9126 阅读 · 0 评论 -
MySQL 主主同步配置步骤
MySQL 主主同步配置 服务器名IP系统MySQLodd.example.com192.168.1.116rhel-5.85.5.16even.example.com192.168.1.115rhel-5.85.5.16假设要同步的库是 db_r转载 2013-10-09 23:08:44 · 1429 阅读 · 0 评论 -
amoeba读写分离配置实战
a. master,slave1,slave2,slave3,slave4 中开放权限给 Amoeba 访问。 在 master,slave1,slave2,slave3,slave4 中分别执行grant all on test.* to test_user@192.168.0.1 indentified by '1234'; Amoeba 访问三个数据库的账号密码相同。详原创 2013-10-08 02:57:58 · 1082 阅读 · 0 评论 -
mysql 主从同步遇到的问题
ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log在另外一台上执行也是一样提示这个错误。 网上查了一些资料,发现大概有两种方法解决这个问题,1.是清理mysql的相关日志;2.是reset slave原创 2013-10-08 12:10:12 · 789 阅读 · 0 评论 -
mysql mvcc理解
写时复制和多版本并发控制,都能够实现读事务不加锁。下面介绍mvcc,以mysql innodb存储引擎为例子。innodb每一行维护了两个隐含的列,一个存储了行被修改的时间,一个是行被删除的时间。这个时间 不是绝对时间,而是与数据库系统对应的版本号,每当一个事物开始时,innodb会给这个事物一个递增的版本号,所以版本号也可以认为是事物号。对于每一行查询语句,innodb都会把这个查询语句的版原创 2013-09-21 23:21:30 · 987 阅读 · 0 评论 -
MySQL同主机不同数据库的复制命令
由于项目需要,需要建立一个测试数据库。MySQL同主机不同数据库的复制命令:注意运行在Terminal中,不运行在MySQL命令行中。mysqldump video -uroot -password123 --add-drop-table | mysql video_test -u root -password123在复制过程中,出现如下报错:ERROR 1原创 2013-09-16 15:11:52 · 1260 阅读 · 0 评论 -
mysql日期比较
mysql日期比较语句 select * from student where '2012-02-27 00:00:00' created_date select * from student where UNIX_TIMESTAMP('2012-02-27 00:00:00') UNIX_TIMESTAMP(created_date); www.2ct原创 2013-09-12 15:44:59 · 1718 阅读 · 1 评论 -
Mysql复制表结构、表数据
1、复制表结构及数据到新表CREATE TABLE 新表SELECT * FROM 旧表这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除。不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key、Extra(auto_increment)等属性。需要自己用"alter"添加,而且容易转载 2013-08-17 10:40:07 · 678 阅读 · 0 评论 -
MySQL 的并集、交集和差集
MySQL的联结(Join)以及MySQL求交集和差集在SQL标准中规划的(Join)联结大致分为下面四种:1. 内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。2. 外联结:分为外左联结和外右联结。左联结A、B表的意思就是将表A中的全部记录和表B中联结的字段与表A的联结字段符合联结条件的那些记录形成的记录集的联结,这里注意的是最后出来的记录集会包括表A转载 2013-08-21 19:27:32 · 5560 阅读 · 0 评论 -
amoeba安装
一: 安装jdk1.5以上版本1.1 卸载centos服务器自带版本jdk1.1.1 查看服务器自带jdk版本号[root@amoeba1 ~]# java –version1.1.2 查看java信息[root@amoeba1 ~]# rpm -qa | grep java1.1.3原创 2013-09-27 01:27:17 · 1558 阅读 · 0 评论 -
电影网站站架构(第一版)
有时间写一下公司用6台服务器搭建的一个电影站点小集群架构。原创 2013-09-30 15:40:29 · 4799 阅读 · 0 评论 -
centos中mysql重置密码
1. 用空密码方式使用root用户登录 MySQL; mysql -u root2. 修改root用户的密码; mysql> update mysql.user set password=PASSWORD(’新密码’) where User=’root’; mysql> flush privileges; mysql> quit3. 重新启原创 2013-12-08 23:02:36 · 780 阅读 · 0 评论 -
mysql MMM方案
1 MMM高可用mysql方案1.1 方案简介MMM即Master-Master Replication Manager for MySQL(mysql主主复制管理器)关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能对居于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启原创 2013-10-09 23:01:28 · 2814 阅读 · 0 评论