Mysql Management
文章平均质量分 83
Mr_HanSong
这个作者很懒,什么都没留下…
展开
-
AUTO_INCREMENT列在InnoDB里如何工作
如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。自动增长计数器仅被存储在主内存中,而不是存在磁盘上。InnoDB使用下列算法来为包含一个名为ai_col的AUTO_INCREMENT列的表T初始化自动增长计数器:服务器启动之后,当一个用户对表T做插入之时,InnoDB执行等价如下语句的动作:SE转载 2015-01-18 11:04:17 · 681 阅读 · 0 评论 -
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 · 610 阅读 · 0 评论 -
Mysql是否需要开启query cache
Query Cache(查询缓存,以下简称QC)存储SELECT语句及其产生的数据结果,特别适用于:频繁提交同一个语句,并且该表数据变化不是很频繁的场景,例如一些静态页面,或者页面中的某块不经常发生变化的信息。QC有可能会从InnoDB Buffer Pool或者MyISAM key buffer里读取结果。由于QC需要缓存最新数据结果,因此表数据发生任何变化(INSERT、UPD转载 2015-05-18 11:59:39 · 1575 阅读 · 0 评论 -
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 · 1800 阅读 · 0 评论 -
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 · 2913 阅读 · 0 评论 -
InnoDB Redo Flush及脏页刷新机制深入分析
我们知道InnoDB采用Write Ahead Log策略来防止宕机数据丢失,即事务提交时,先写重做日志,再修改内存数据页,这样就产生了脏页。既然有重做日志保证数据持久性,查询时也可以直接从缓冲池页中取数据,那为什么还要刷新脏页到磁盘呢?如果重做日志可以无限增大,同时缓冲池足够大,能够缓存所有数据,那么是不需要将缓冲池中的脏页刷新到磁盘。但是,通常会有以下几个问题:原创 2015-10-06 12:54:09 · 12588 阅读 · 2 评论 -
揭秘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 · 1346 阅读 · 1 评论 -
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 · 4926 阅读 · 0 评论 -
mysql join中,on和where的区别
--------------------------------------------------------------正文--------------------------------------------------------------问题出现于生产环境,为了方便表述,在测试环境构造了类似的场景所有操作都是基于MySQL-5.7.7-rc下进行的(PS:5.7.8也转载 2015-09-20 13:36:14 · 17796 阅读 · 1 评论 -
MYSQL数据丢失讨论
1. 概述很多企业选择MySQL都会担心它的数据丢失问题,从而选择Oracle,但是其实并不十分清楚什么情况下,各种原因导致MySQL会丢失部分数据。本文不讨论Oracle和MySQL的优劣,仅仅关注MySQL丢失数据的几种情况。希望能够抛砖引玉,让各位MySQL大牛们梳理出MySQL最安全或者性价比合适的适合各种应用场景的方案。2. 问题定义一般我们希望把一系列的转载 2015-09-20 15:50:29 · 3104 阅读 · 0 评论 -
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 · 1938 阅读 · 0 评论 -
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 · 5775 阅读 · 0 评论 -
Mysql InnoDB和MyISAM的主要区别
1.事务处理方面InnoDB支持事务功能,外键等高级数据库功能。MyISAM 类型表强调的是性能,其执行速度比Innodb类型更快,但是不提供事务支持。2.DML操作方面(select,update,insert,delete)InnoDBi.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表;原创 2015-01-18 11:10:13 · 617 阅读 · 0 评论 -
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 · 635 阅读 · 0 评论 -
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 · 3250 阅读 · 0 评论 -
mysqldump关于master-data参数
之前一直用--default-character-set=utf8 --disable-keys --opt --extended-insert=false --triggers -R --hex-blob -x --flush-logs去备份原创 2014-08-14 12:06:09 · 2922 阅读 · 0 评论 -
mysql mysqlbinlog: unknown variable 'default-character-set=gbk'解决方法
mysql [root@localhost data]# /Data/apps/mysql/bin/mysqlbinlog mysql-bin.000004 > yhs_binlog.log/Data/apps/mysql/bin/mysqlbinlog: unknown variable 'default-character-set=gbk'原创 2014-05-23 10:20:57 · 4727 阅读 · 0 评论 -
Mysql执行计划-Extra列
using index: 中文名叫做索引覆盖查询: 如果查询的时候,用到了索引,并且你最终需要的数据也是这个索引的一部分,那么就出现using index. 例如: user表有索引 key(id), key(name) select id from user; select name from user; select id from user where转载 2014-06-23 12:40:12 · 938 阅读 · 0 评论 -
Innodb状态信息解释
Innodb_buffer_pool_pages_data: Innodb buffer pool缓存池中包含数据的页的数目,包括脏页。单位是page。Innodb_buffer_pool_pages_dirty: innodb buffer pool缓存池中脏页的数目。单位是page。Innodb_buffer_pool_pages_flushed: innodb buffer po原创 2014-06-25 17:44:54 · 6027 阅读 · 0 评论 -
mysql改变数据字符集latin1->utf8
mysql version:5.1.51os version:CentOS release 5.8database:testtable_name原创 2014-05-20 11:29:42 · 1385 阅读 · 0 评论 -
mysql myisam存储引擎关于锁的3个参数
MyISAM在读操作占主导的情况下是很高效的。可一旦出现大量的读写并发,同InnoDB相比,MyISAM的效率就会直线下降,而且,MyISAM和InnoDB的数据存储方式也有显著不同:通常,在MyISAM里,新数据会被附加到数据文件的结尾,可如果时常做一些UPDATE,DELETE操作之后,数据文件就不再是连续的,形象一点来说,就是数据文件里出现了很多洞洞,此时再插入新数据时,按缺省设置会先看这些转载 2014-06-24 16:34:13 · 1744 阅读 · 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.原创 2014-05-13 15:18:49 · 1073 阅读 · 0 评论 -
[Status] Table_locks_immediate
update表锁table_locks_immediate + 1...此时会不会有另一个疑问,还有没有其他情况这个指标增长呢,行锁的情况呢?一起来看看原创 2015-09-23 16:48:11 · 5451 阅读 · 0 评论