自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (2)
  • 收藏
  • 关注

原创 innodb 关键特性

插入缓冲两次写自适应哈希索引异步IO刷新邻接页插入缓冲innodb存储引擎对于非聚集索引的插入或更新操作,不是每一次直接插入到索引页中,而是先判断插入的非聚集索引页是否在缓冲池,若在,则直接插入;不在,则先放在一个insert buffer对象中。数据库这个非聚集的索引已经插到叶子节点,而实际并没有,知识存放在另一个位置。然后再以一定的频率和情况进行insert buffer和辅助索引页子

2016-06-29 18:00:07 622

原创 innodb checkpoint

checkpoint是为了解决:缩短数据库恢复时间缓冲池不够用时,将脏页刷新到磁盘重做日志不可用时,刷新脏页所以当数据库发生宕机时,数据库不需要重做所有的日志,因为checkpoint之前的页都已经刷新到磁盘了。数据库只需对checkpoint之后的重做日志进行恢复。 当缓冲池不够用时,根据LRU算法将最近最少使用的脏页,强制执行checkpoint,将脏页刷新到磁盘。 重做日志可以被重

2016-06-29 08:58:39 653

原创 innodb重做日志缓冲

innodb内存区域除了缓冲池外,还有重做日志缓冲。innodb存储引擎会先将重做日志信息写入缓冲区,然后按照一定频率刷新到重做日志文件。其可由参数innodb_log_buffer_size进行控制。mysql> show variables like 'innodb_log_buffer_size'\G;*************************** 1. row **********

2016-06-24 16:35:49 965

原创 innodb lru list、free list、flush list

LRU list innodb中新读取到的页,并不直接放在LRU列表首部,而是放在midpoint位置。默认该位置在LRU列表5/8处。midpoint可有参数innodb_old_blocks_pct控制mysql> show variables like 'innodb_old_blocks_pct'\G;*************************** 1. row ********

2016-06-23 17:59:57 1626

原创 innodb缓冲池

innodb存储引擎缓冲池设置为21GBmysql> show variables like 'innodb_buffer_pool_size'\G;*************************** 1. row ***************************Variable_name: innodb_buffer_pool_size Value: 21474836

2016-06-23 15:50:22 640

原创 mysql体系结构

mysql主要由以下几部分组成 连接池组件管理服务和工具组件SQL接口组件查询分析器组件优化器组件缓冲组件插件式存储引擎物理文件

2016-06-22 21:24:55 319

原创 mysql后台线程

master thread 核心的后台线程,主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新、合并插入缓冲、undo页的回收等。 IO thread 主要负责IO请求的回掉处理。分别为write、read、insert buffer和log IO thread。线程数量可以通过参数进行调整mysql> show variables like 'innodb_versio

2016-06-21 17:59:57 2533

原创 mysql连接方式

TCP/IP当客户端和mysql实例不在同一台服务器上时,两台机器通过TCP/IP网络连接# mysql -h192.168.74.128 -uroot -p需要注意在通过TCP/IP连接时,mysql会先检查一张权限视图,用来判断客户端IP是否允许连接到实例mysql> select host,user,password from mysql.user\G********************

2016-06-21 15:04:55 439

原创 mysql查找配置文件的顺序

通过以下命令可以查看mysql 实例启动时,会在哪些位置查找配置文件# mysql --help|grep my.cnf order of preference, my.cnf, $MYSQL_TCP_PORT,/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf /usr/local/mys

2016-06-20 21:20:43 1983

转载 mysql 行转列

原文链接 本文介绍的实例成功的实现了动态行转列。下面我以一个简单的数据库为例子,说明一下。数据表结构这里我用一个比较简单的例子来说明,也是行转列的经典例子,就是学生的成绩 三张表:学生表、课程表、成绩表学生表 就简单一点,学生学号、学生姓名两个字段CREATE TABLE `student` ( `stuid` VARCHAR(16) NOT NULL COMMENT '学号', `

2016-06-20 16:19:05 939

转载 mysql隔离级别

原文链接 MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ)。未提交读(READ UNCOMMITTED)。另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)。提交读(READ COMMITTED)。本事务读取到的是最新的数据(其他事务提交后的)。问题是,在同一个事务里,前后两次相同的SELECT会读到不同

2016-06-16 16:35:59 284

原创 mysql修改表的存储引擎

将表从一个引擎改为另一个引擎的方法方法1:最简单的方法alter table test engine=innodb;但是如果表数据量大,则需要执行很长时间。因为mysql会按行将数据从原表复制到新表,在复制期间可能会消耗系统所有的IO,同时原表上会加读锁,所以业务繁忙的表要小心该操作。方法2:一种解决方案是使用导出导入 - 使用mysqldump导出文件 - 修改文件中的crea

2016-06-15 18:00:09 573

原创 innoDB的MVCC实现方式

innodb的MVCC是通过在每行记录后面保存两个隐藏的列来实现。一个保存行的创建时间,一个保存行的过期时间,存储的值为系统版本号。每开启一个新的事务,系统版本号都会自动增加。在repeatable read隔离级别下,MVCC的具体操作:select innodb会根据以下两个条件检查每行记录: innodb只查找版本早于当前事务版本的数据行。行删除版本要么未定义,要么大于当前事务版本号

2016-06-15 15:47:49 606

转载 centos下使用yum 安装percona xtrabackup

配置percona的yum仓库 一、先安装依赖:yum install perl-DBIyum install perl-DBD-MySQLyum install perl-Time-HiResyum install perl-IO-Socket-SSL二、配置yum源、 方法1、自动安装percona的yum仓库(以下分别为x86_64和i386平台)#rpm -ivh http://www.

2016-06-12 20:41:44 4527

HBase权威指南

HBase权威指南

2016-02-17

空空如也

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

TA关注的人

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