MySQL引數DELAY_KEY_WRITE的詳細說明
MySQL引數DELAY_KEY_WRITE的詳細說明
DELAY_KEY_WRITE 延遲更新索引
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> alter table nagios_servicechecks DELAY_KEY_WRITE=1;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table nagios_hostchecks DELAY_KEY_WRITE=1;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> flush table;
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql>
mysql>
mysql> exit
Bye
[root@mysqltest ~]#
[root@mysqltest ~]#
[root@mysqltest ~]# service mysqld restart
mysqld: unrecognized service
[root@mysqltest ~]# service mysql restart
Shutting down MySQL.....[ OK ]
Starting MySQL.[ OK ]
[root@mysqltest ~]# service mysql restart --myisam-recover
Shutting down MySQL...[ OK ]
Starting MySQL.[ OK ]
[root@mysqltest ~]#
DELAY_KEY_WRITE 延遲更新索引
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> alter table nagios_servicechecks DELAY_KEY_WRITE=1;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table nagios_hostchecks DELAY_KEY_WRITE=1;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> flush table;
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql>
mysql>
mysql> exit
Bye
[root@mysqltest ~]#
[root@mysqltest ~]#
[root@mysqltest ~]# service mysqld restart
mysqld: unrecognized service
[root@mysqltest ~]# service mysql restart
Shutting down MySQL.....[ OK ]
Starting MySQL.[ OK ]
[root@mysqltest ~]# service mysql restart --myisam-recover
Shutting down MySQL...[ OK ]
Starting MySQL.[ OK ]
[root@mysqltest ~]#
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29500582/viewspace-1432048/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL mysqldump命令的引數詳細說明MySql
- mysqldump引數詳細說明MySql
- JQuery Datatables Columns API 引數詳細說明jQueryAPI
- MySQL引數說明MySql
- mysql processlist詳細說明MySql
- mysql replace into用法詳細說明MySql
- 【MYSQL】MHA引數列表說明MySql
- Mysql JDBC Url引數說明MySqlJDBC
- jquery datatables各引數詳細說明及簡單應用jQuery
- 【MySQL】SemisynchronousReplication配置和引數說明MySql
- MySQL CMake引數說明手冊MySql
- mysql innodb相關引數說明MySql
- mysql uninstall plugins 詳細說明MySqlPlugin
- Mysql my.cnf部分引數說明MySql
- mysql relay log相關引數說明MySql
- MYSQL: Handler_read_%引數說明MySql
- 【MySQL】Semisynchronous Replication 配置和引數說明MySql
- MySQL Galera cluster叢集常用引數說明MySql
- mysql常用引數使用說明及查詢MySql
- TOP引數說明
- mysqldump引數說明MySql
- mysqldump 引數說明MySql
- session的詳細說明和用法Session
- nginx 詳解 – 詳細配置說明Nginx
- nginx 詳解 - 詳細配置說明Nginx
- MySQL relay log 詳細引數解釋MySql
- MySQL 5.7 自增欄位相關引數說明MySql
- MySQL 5.5編譯安裝cmake引數說明MySql編譯
- Java基礎學習總結(120)——JVM 引數使用詳細說明JavaJVM
- redis info命令詳細說明Redis
- Emacs詳細使用說明(轉)Mac
- memset函式詳細說明函式
- Elasticsearch 引數配置說明Elasticsearch
- kafka 引數配置說明Kafka
- redis 3.0 引數說明Redis
- golden gate 引數說明Go
- oracle引數說明(zt)Oracle
- linux安裝mysql的步驟和方法詳細說明LinuxMySql