自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

转载 MySQL之SQL分析三部曲实际案例

-------------------------------------------------------------------------------------------------正文-----------------------------------------------------------------------------------------------------

2015-10-07 17:53:29 2076

转载 MySQL索引选择不正确并详细解析OPTIMIZER_TRACE格式

一 表结构如下: CREATE TABLE t_audit_operate_log (  Fid bigint(16) AUTO_INCREMENT,  Fcreate_time int(10) unsigned NOT NULL DEFAULT '0',  Fuser varchar(50) DEFAULT '',  Fip bigint(16) DEFAULT NULL

2015-10-07 17:44:02 4876

转载 eq_range_index_dive_limit决定COST估算方式

在MySQL的官方手册上有这么一句话:the optimizer can estimate the row count for each range using dives into the index or index statistics.这是在说: 优化器为每一个范围段(如“a IN (10, 20, 30)”是等值比较, 括3个范围段实则简化为3个单值,分别是10,20,3

2015-10-07 11:28:55 1998

原创 揭秘Mysql 5.6 Index Condition Pushdown(ICP)

ICP(index condition pushdown)是mysql利用索引(二级索引)元组和筛字段在索引中的where条件从表中提取数据记录的一种优化操作。ICP的思想是:存储引擎在访问索引的时候检查筛选字段在索引中的where条件(pushed index condition,推送的索引条件),如果索引元组中的数据不满足推送的索引条件,那么就过滤掉该条数据记录。ICP(优化器)尽可能的把index condition的处理从server层下推到storage engine层。storage engin

2015-10-07 11:08:39 1308 1

原创 InnoDB Redo Flush及脏页刷新机制深入分析

我们知道InnoDB采用Write Ahead Log策略来防止宕机数据丢失,即事务提交时,先写重做日志,再修改内存数据页,这样就产生了脏页。既然有重做日志保证数据持久性,查询时也可以直接从缓冲池页中取数据,那为什么还要刷新脏页到磁盘呢?如果重做日志可以无限增大,同时缓冲池足够大,能够缓存所有数据,那么是不需要将缓冲池中的脏页刷新到磁盘。但是,通常会有以下几个问题:

2015-10-06 12:54:09 12426 2

原创 [Status] Table_locks_immediate

update表锁table_locks_immediate + 1...此时会不会有另一个疑问,还有没有其他情况这个指标增长呢,行锁的情况呢?一起来看看

2015-09-23 16:48:11 5366

原创 innodb_flush_method的性能差异与File I/O

众所周知,innodb_flush_log_at_trx_commit参数确定日志文件何时write、flush。而write、flush的方式如何呢?正是由innodb_flush_method来指定。innodb_flush_method确定日志及数据文件如何write、flush。 控制innodb数据文件和redo log的打开、刷写模式。有三个值:fdatasync(默认),O_DSYNC,O_DIRECT。 •fdatasync模式:写数据时,write这一步并不需要真正写到磁盘才算完成

2015-09-21 15:09:06 1911

转载 MYSQL数据丢失讨论

1.   概述很多企业选择MySQL都会担心它的数据丢失问题,从而选择Oracle,但是其实并不十分清楚什么情况下,各种原因导致MySQL会丢失部分数据。本文不讨论Oracle和MySQL的优劣,仅仅关注MySQL丢失数据的几种情况。希望能够抛砖引玉,让各位MySQL大牛们梳理出MySQL最安全或者性价比合适的适合各种应用场景的方案。2.   问题定义一般我们希望把一系列的

2015-09-20 15:50:29 3082

转载 mysql join中,on和where的区别

--------------------------------------------------------------正文--------------------------------------------------------------问题出现于生产环境,为了方便表述,在测试环境构造了类似的场景所有操作都是基于MySQL-5.7.7-rc下进行的(PS:5.7.8也

2015-09-20 13:36:14 17680 1

转载 实现秒杀的几个想法(续)

还是秒杀.秒杀一般有几个场景1.电商秒杀商品2.抢红包3.抢票假设一个场景如下:    某电商公司搞活动,一折秒杀,推出几种秒杀的商品,每种商品1000个,预计100w人抢购要求:    不能超卖.绝对不可以卖多了.    数据库要扣减库存,并且记录订单明细.难点分析1.不能阻塞.海量的请求就像血栓一样,遍走周身,一旦遇到瓶颈,就会堵塞整个血

2015-09-20 13:29:35 614

原创 [Mysql variables] 解析sql_mode

MySQL服务器可以以不同的SQL模式来操作,并且可以为不同客户端应用不同模式。这样每个应用程序可以根据自己的需求来定制服务器的操作模式。模式定义MySQL应支持哪些SQL语法,以及应执行哪种数据验证检查。这样可以更容易地在不同的环境中使用MySQL,并结合其它数据库服务器使用MySQL。你可以用--sql-mode="modes"选项启动mysqld来设置默认SQL模式。如果你想

2015-09-19 15:04:42 1008

原创 Read_only

read_only When this variable is set to ON, the server allows no updates except from users that have the SUPER privilege or (on a slave server) from updates performed by slave threads. On a slave server, this can be useful to ensure that the sla

2015-09-18 12:03:35 1102

原创 Replication_Error:Relay log write failure:could not queue event from master

刚刚突然发现DB Master1(当前读写)磁盘满了,DB Master2(当前不对外提供写)replication 抛出异常:Relay log write failure:could not queue event from master,并且Slave_IO_Running: No。

2015-08-02 00:38:33 10309

原创 MySql中in和exists效率对比

mysql中的 in语句是把外表和内表作hash 连接; exists语句是对外表作loop循环,每次loop循环再对内表进行查询。一直大家都认为exists比in语句的效率要高,这种说法其实是不准确的。这个是要区分环境的。 如果查询的两个表大小相当,那么用in和exists差别不大。 如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:

2015-07-13 15:18:49 878

转载 在Linux下安装运行TeamViewer 9

这篇指南介绍了怎么样在 RedHat、 CentOS、 Fedora 和 Debian、 Ubuntu、 Linux Mint、 Xubuntu 等这些系统中安装 Teamviewer 9。Teamviewer 是一款流行的应用软件,用于远程辅助、桌面共享、计算机之间互传文件、网络会议及在线会议等方面,并且它是一款专业应用程序。而且,个人用户可以免费使用。Teamviewer可以运行在 Win

2015-07-06 16:15:42 14981 3

转载 “Zabbix poller processes more than 75% busy”警报问题解决

虽然Zabbix的监控警报各种有,但Kaijia使用碰到最多的几个莫过于内存耗尽,网络不通,IO太慢还有这个“Zabbix poller processes more than 75% busy”了。一开始的时候因为这个即不影响使用也持续一会儿就自行解决就没有多在意。然后随着数据库的增大,Zabbix消耗的内存可是越来越多,Poller processes(轮询)开始天天Busy了,最终Kai

2015-07-06 11:10:10 7134

转载 processlist中哪些状态要引起关注

一般而言,我们在processlist结果中如果经常能看到某些SQL的话,至少可以说明这些SQL的频率很高,通常需要对这些SQL进行进一步优化。今天我们要说的是,在processlist中,看到哪些运行状态时要引起关注,主要有下面几个:状态建议copy to tmp table执行ALTER TABLE修改表结构时建议:放在凌晨执行或者采用类似pt-osc工

2015-06-11 10:36:40 575

原创 Mysql探究not null约束与空值

看到上面的实验结果,大概可以看出“空值” 和 “NULL” 很明显的差别,那么先来说下这俩的概念: 1、空值是不占用空间的 2、mysql中的NULL其实是占用空间的,下面是来自于MYSQL官方的解释 “NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, ro

2015-05-22 11:51:00 1747

原创 sysbench 基准测试简介

1.简介 sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。数据库目前支持MySQL/Oracle/PostgreSQL。本文只是简单演示一下几种测试的用法,后续准备利用sysbench来对MySQL进行一系列的测试。具体的一些参数设置,需要根据不同的测试要求来进行调整。2.安装# yum打包、增加环境变量yum -y install bzr libtool wget http://imysql.com/wp-content/uploa

2015-05-21 17:21:03 2869

转载 Mysql Show详解

SHOW CHARACTER SET显示所有可用的字符集SHOW CHARACTER SET;SHOW CHARACTER SET LIKE 'latin%'; SHOW COLLATION输出包括所有可用的字符集SHOW COLLATION;SHOW COLLATION LIKE 'latin1%'; SHOW COLU

2015-05-21 15:35:46 590

转载 Mysql是否需要开启query cache

Query Cache(查询缓存,以下简称QC)存储SELECT语句及其产生的数据结果,特别适用于:频繁提交同一个语句,并且该表数据变化不是很频繁的场景,例如一些静态页面,或者页面中的某块不经常发生变化的信息。QC有可能会从InnoDB Buffer Pool或者MyISAM key buffer里读取结果。由于QC需要缓存最新数据结果,因此表数据发生任何变化(INSERT、UPD

2015-05-18 11:59:39 1547

原创 Lost connection to MySQL server at 'reading authorization packet' 处理解决办法

Lost connection to MySQL server at 'reading authorization packet',看到这个错误提示,第一想到是客户端连接不上,服务端本地是否能连接。经验证,服务端本地是可以连接的,这就松了口气,一方面有很多任务是跑在Mysql服务端的,如果本地无法连接,会造成大部分程序阻塞;另一方面,服务端可以连接,那就可以进行相关的查问题。 用show processlist查看连接的时候,发现连接数并不多,此时并发不高,不是并发的问题,但是有个值,很显眼:

2015-05-15 17:30:32 48246

原创 SecureCRT颜色修改

效果图:颜色配比(数字):1:1 (128))-(240))-(25)1:2 (40)-(240)-(60)1:5 (0)-(240)-(180)1:8 (124)-(20)-(132)2:2 (40)-(240)-(60)2:5 (188)-(232)-(155)2:8 (124)-(20)-(132)颜色配比(图片):

2015-05-05 17:07:18 989

原创 Slowlog中小于long_query_time时间设置的query

说到慢查询,有点老生常谈了,但是慢查询相关的有个参数可能会被很多人忽略。log_queries_not_using_indexes 这个参数设置当查询没有使用索引的情况下,是否记录到slowlog中。如果你使用的mysql版本大于5.6.5,也可以通过设置log_throttle_queries_not_using_indexes 这个参数表示每分钟允许记录到slowlog且未使用索引的次数。默认值为0,标识没有限制。

2015-04-29 16:50:48 5735

原创 使用pt-table-checksum及pt-table-sync校验复制一致性详细介绍

一、简介pt-table-checksum是percona-toolkit系列工具中的一个, 可以用来检测主、 从数据库中数据的一致性。其原理是在主库上运行, 对同步的表进行checksum, 记录下来。 然后对比主从中各个表的checksum是否一致, 从而判断数据是否一致。检测过程中以块为单位, 对于大的表可以区分为多个块, 从而避免锁表( 根据唯一索引将表切分为块)检测时会自动判断复制延迟、 master的负载, 超过阀值后会自动将检测暂停。pt-table-sync,顾名思义,它用来修复多个

2015-04-23 17:17:50 11430

转载 MySQL Sending data导致查询很慢的问题详细分析

【问题现象】使用sphinx支持倒排索引,但sphinx从mysql查询源数据的时候,查询的记录数才几万条,但查询的速度非常慢,大概要4~5分钟左右【处理过程】1)explain首先怀疑索引没有建好,于是使用explain查看查询计划,结果如下:从explain的结果来看,整个语句的索引设计是没有问题的,除了第一个表因为业务需要进行整

2015-04-22 14:48:44 1297

转载 58同城数据库架构设计思路

本文转载自:职说(1)可用性设计解决思路:复制+冗余副作用:复制+冗余一定会引发一致性问题保证“读”高可用的方法:复制从库,冗余数据,如下图带来的问题:主从不一致解决方案:见下文保证“写”高可用的一般方法:双主模式,即复制主库(很多公司用单master,此时无法保证写的可用性),冗余数据,如下图带来

2015-04-22 14:35:34 1319

转载 58同城mysql实践

本文转载自:职说提纲1)基本概念2)常见问题及解决思路3)拆库实战4)拆库后业务实战5)总结一、基本概念大数据量下,搞mysql,以下概念需要先达成一致1)单库,不多说了,就是一个库2)分片(sharding),水平拆分,用于解决扩展性问题3)

2015-04-22 14:31:37 1075

转载 分页优化

转载至原文:http://imysql.com/2014/07/26/mysql-optimization-case-paging-optimize.shtml通常,我们会采用ORDER BY LIMIT start, offset 的方式来进行分页查询。例如下面这个SQL:SELECT * FROM `t1` WHERE ftype=1 ORDER BY id DESC LIMIT

2015-04-21 17:42:17 597

转载 slave延迟很大优化方法

转载至原文:http://imysql.com/2015/04/12/mysql-optimization-case-howto-resolve-slave-delay.shtml一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发。简单说,在master上是并发模式(以InnoDB引擎为主)完成事务提交的,而在slave上,复制

2015-04-21 17:35:10 1401

原创 解决SecureCRT上下左右显示ABCD问题

SecureCRT在linux里用vim编辑器时,按方向键一直出现插入A B C D,而不是移动光标。该问题解决办法:Options-》Global Options-》chang-》default session settings-》Terminal-》Emulation-》Modes中,去掉CurSor key mode的选择,然后就OK了。中文版:选项》全局选项》常

2015-04-09 15:35:07 12362 1

原创 ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA...

ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)查了一些资料,解决办法是把log_bin_trust_function_cr

2015-02-05 16:25:20 3940

原创 Innodb buffer相关参数及查看方式(待续)

buffer相关参数:innodb_buffer_pool_sizeinnodb_buffer 大小innodb_buffer_pool_instancesinnodb_buffer instance 个数innodb_old_blocks_pctLRU端mid点位置innodb_old_blocks_timeLRU在Old端保留的时间innodb_io_c

2015-02-03 09:10:24 3191

转载 ext3,ext4,xfs和btrfs文件系统性能对比

应为原文:http://www.ilsistemista.net/index.php/linux-a-unix/6-linux-filesystems-benchmarked-ext3-vs-ext4-vs-xfs-vs-btrfs.html?start=1还有一篇相关介绍:http://www.phoronix.com/scan.php?page=article&item=ext4_be

2015-01-28 16:56:29 1462

原创 Mysql InnoDB和MyISAM的主要区别

1.事务处理方面InnoDB支持事务功能,外键等高级数据库功能。MyISAM 类型表强调的是性能,其执行速度比Innodb类型更快,但是不提供事务支持。2.DML操作方面(select,update,insert,delete)InnoDBi.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表;

2015-01-18 11:10:13 596

转载 AUTO_INCREMENT列在InnoDB里如何工作

如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。自动增长计数器仅被存储在主内存中,而不是存在磁盘上。InnoDB使用下列算法来为包含一个名为ai_col的AUTO_INCREMENT列的表T初始化自动增长计数器:服务器启动之后,当一个用户对表T做插入之时,InnoDB执行等价如下语句的动作:SE

2015-01-18 11:04:17 658

转载 linux下mysql配置文件my.cnf详解

basedir = path使用给定目录作为根目录(安装目录)。character-sets-dir = path给出存放着字符集的目录。datadir = path从给定目录读取数据库文件。pid-file = filename为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统); Init-V脚本需要使用这个文件里

2015-01-09 17:58:02 615

原创 uuencode: command not found

错误信息:bash: uuencode: command not found解决方法:安装 sharutils RPM包$rpm -ivh sharutils-4.6.1-2.x86_64.rpmPreparing...                ########################################### [100%]   1

2014-12-22 11:43:44 2431

原创 关于SQLyog操作Mysql双主、主从复制异常问题

mysql version 5.6.21 关于SQLyog操作Mysql双主、主从同步异常问题:SQLyog对Master1做DML操作时,记录未同步到Master2对应库表里;使用其他工具操作mysql,同步正常

2014-12-02 11:03:47 1777

原创 解决关于aud$对象导致system表空间暴涨问题

OS VERSION : LINUX 6ORACLE VERSION : 11.2.0.4

2014-11-17 14:23:12 3896

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除