MySQL参数DELAY_KEY_WRITE的详细说明

数据库 MySQL
本文我们主要介绍了MySQL参数DELAY_KEY_WRITE的用法的详细说明,这个参数只对MyISAM引擎表有作用,希望能够对您有所帮助。

MySQL参数DELAY_KEY_WRITE的相关知识是本文我们主要要介绍的内容,DELAY_KEY_WRITE是指在表关闭之前,将对表的update操作指跟新数据到磁盘,而不更新索引到磁盘,把对索引的更改记录在内存。这样MyISAM表可以使索引更新更快。在关闭表的时候一起更新索引到磁盘。

使用:create table的时候,指定DELAY_KEY_WRITE。

当表已经存在的时候:ALTER TABLE table_name DELAY_KEY_WRITE= 1。

适用范围:表有update操作,这个参数的优势会很好的体现出来。因为这个参数能延迟更新索引到表关闭。当我们需要经常跟新一个大表的时候,可以考虑使用这个参数。

说明:表关闭会在什么时候发生?你可以理解成当flash table的时候,表将关闭。那么有2种情况将会发生flush table:

当cache 满了一个新的thread试图打开一个表的时候,那个表没有在cache;

当cache里的表数比table_cache多时thread不在使用表;

这个2种情况将会flush table。

当然,你也可以直接设置启动参数flush_time ,设置每多少时间flush table一次。

需要注意的是:当DELAY_KEY_WRITE使用的时候,如果出现重启或者掉电等情况,会导致在cache的索引update没来得及更新,所以必须在启动参数加上 --myisam-recover,这样在你启动mysql的时候会检查你的表并同步表和索引.或者在重启服务器之前运行myisamchk。(然而,即使在这种情况下,应通过使用DELAY_KEY_WRITE保证不丢失数据,因为关键字信息总是可以从数据行产生)。如果你使用该特性,你应用--myisam-recover选项启动服务器,为所有MyISAM表添加自动检查。

关于MySQL参数DELAY_KEY_WRITE的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!

【编辑推荐】

  1. MySQL源码学习之Connection Manager详解
  2. 关于Oracle数据库与MySQL数据库的几点区别
  3. MySQL数据库中EXPLAIN的使用及其注意事项详解
  4. MySQL如何创建用户表并将其ID设置为自动增长列?
  5. 一个MySQL数据库启动失败1067进程意外终止的解决实例
责任编辑:赵鹏 来源: 火魔网
相关推荐

2010-10-13 14:28:09

mysql日志文件

2014-09-16 09:57:56

INotifyProp

2009-12-28 09:26:09

ADO对象

2009-12-08 17:34:25

WCF的配置

2010-02-04 14:41:52

Android菜单类型

2010-02-22 16:26:21

Python编辑

2010-02-22 17:54:07

Python工具

2009-12-08 09:00:14

WCF线程

2010-07-21 13:17:52

Perl文件读写

2010-03-09 10:11:34

Linux挂载命令

2009-12-07 18:06:46

WCF框架

2010-05-26 10:41:30

2010-01-08 15:37:59

JSON数据

2010-02-05 18:09:12

Android

2009-12-14 09:47:39

.net2008

2010-03-05 14:16:38

Android设计平台

2009-12-28 09:19:21

ADO属性

2009-12-14 17:57:21

NET 源码

2010-02-04 15:20:50

Android SDK

2009-12-10 16:17:23

Visual Stud
点赞
收藏

51CTO技术栈公众号