从MySQL5 5 X版本开始支持InnoDB数据页压缩,数据页的压缩使数据文件体积变小,减少磁盘I O,提高吞吐量,小成本地提高了CPU利用率。尤其是对读多写少的应用来说最为有效,同样的内存可以存储更多的数据,充分地
在MySQL5 1 X版本里,创建和删除聚集索引的过程如下:1)创建一个和原表结构一样的空表,然后创建聚集索引。2)复制原表的数据到新表,这时会对原表加一个排他锁,其他的会话dml操作会阻塞,从而保证数据的一致性
在介绍该特性之前,先来了解一下何谓自旋锁?它是为保护共享资源而提出的一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用的。无论是互斥锁,还是自旋锁,在任何时刻,最多只能
在向一个表进行insert、delete或update操作时,里面的索引(聚集索引和非聚集索引)也会随即更新,其中,主键(聚集索引)是按照顺序进行插入的,而非聚集索引则会分散地插入。顺序读写的速度要比随机读写的速度
InnoDB 中的清除操作是一类定期回收无用数据的操作。在之前的几个版本中,清除操作是主线程的一部分,这意味着它在运行时可能会堵塞其他的数据操作,比如,删除一张大表。从MySQL5 5 X版本开始,该操作运行于独
InnoDB现在可以使用多个回滚段来提升性能和可扩展性,并且能够极大地增加并发事务处理数量,而之前的几个 InnoDB版本最多只能处理 1023个并发事务处理操作。现在 MySQL5 5 可以支持高达 128 KB 的并发事务
一个事务提交时,采取的是先写日志后刷入磁盘的方式。假如此时有多个用户同时提交,那么按照顺序把写入的事务日志页刷入磁盘上,就会导致磁盘做多次I O操作,从而降低IOPS吞吐率。从MySQL5 5 X版本开始,会采用组
这里先解释下什么是同步I O,什么是异步I O。在同步文件I O中,线程启动一个I O操作后会立即进入等待状态,直到I O操作完成才醒来继续执行。而在异步文件I O方式中,线程发送一个I O请求到内核,然后继续处理其他
InnoDB有两种预读算法可提高I O性能,一种是线性预读,另一种是随机预读。线性预读:当顺序读取extent块(包含64个page)innodb_read_ahead_threshold设置的page页数量时,触发一个异步读取请求,将下一个页提前
InnoDB使用操作系统线程来处理用户事务请求,它是这样工作的:当InnoDB收到一个用户的请求时,如果已经超过innodb_thread_concurrency预先设置的并发线程数量,那么就会按照innodb_thread_sleep_delay预先设定的
在InnoDB刚刚被开发的时候,多核CPU还不是这么流行,当时也并没有针对多核CPU优化的内存分配器(memory allocator libraries ),所以InnoDB实现了一个自己的内存分配子系统(mem subsystem),这个子系统是
如果一个表几乎完全驻留在内存中,执行查询最快的方法就是使用哈希索引。InnoDB有一个自动机制,它监视一个索引的使用情况。如果InnoDB注意到查询会从建立一个哈希索引中获益,它会自动地这么做,无须DBA人工加以
InnoDB用来缓存它的数据和索引的内存缓冲区的大小。把innodb_buffer_pool_size参数值设得越高,访问表中数据需要的磁盘I O就越少。在一个专用的数据库服务器上,最高可以将这个参数值设置为机器物理内存大小的80
一般情况下,MySQL InnoDB都是运行在普通的PC Server + Linux(UNIX)上,虽然不期待它具有小型机+AIX 的高可用性,但想尽一切办法缩短MySQL的不可用时间仍然是DBA的目标。根据经验,主机OS崩溃、硬件故障,
InnoDB_Buffer_Pool缓冲区有两个区域,一个是sublist of new blocks区域(经常被访问的数据——热数据),一个是sublist of old blocks区域(不经常访问的数据)。当用户访问数据时,如果缓冲区里有相应的
这个功能是在InnoDB Plugin中引入的。InnoDB刷新脏页的规则是在如下三种情况下才会把InnoDB_Buffer_Pool的脏页刷入磁盘:当超过innodb_max_dirty_pages_pct设定的值时。重做日志ib_logfile文件写满了以后。机器
在MySQL5 1 X版本中,由于代码写死,因此最多只会刷新100个脏页到磁盘、合并20个插入缓冲,即使磁盘有能力处理更多的请求,也只会处理这么多,这样在更新量较大(比如大批量INSERT)的时候,脏页刷新可能就会跟不
在MySQL5 1 X版本中,innodb_file_io_threads参数默认是4,该参数在Linux系统上是不可更改的,但Windows系统上可以调整。这个参数的作用是:InnoDB使用后台线程处理数据页上读写I O(输入输出)请求的数量。在My
1 1 性能上的显著改变1 1 1 MySQL5 5默认存储引擎的调整在MySQL5 1 X之前的版本中,默认的存储引擎是MyISAM,每个MyISAM在磁盘上会将数据存储成三个文件。第一个文件是表结构文件,它的名字以表的名字开始,其
MySQL是一个中小型的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。由于它具有性能高、成本低、可靠性好等特点,近几年已经成为最流行的开源数据库,被广泛地应用在Internet上的中小型网