官术网_书友最值得收藏!

  • MariaDB Cookbook
  • Daniel Bartholomew
  • 335字
  • 2021-07-16 12:19:26

Migrating a table from MyISAM or Aria to InnoDB or XtraDB

The default storage engine of MariaDB is XtraDB, which is an enhanced version of InnoDB.

Getting ready

Import the ISFDB database as described in the Importing the data exported by mysqldump recipe in this chapter.

How to do it...

  1. Open the mysql command-line client and connect to the isfdb database.
  2. Run the following command line:
    ALTER TABLE awards ENGINE=InnoDB;
    
  3. After the command line gets executed, a message similar to the following will be displayed:
    Query OK, 33102 rows affected (5.37 sec)
    Records: 33102 Duplicates: 0 Warnings: 0
    
  4. If our system is older or is under heavy load and it takes longer than 5 seconds for the ALTER TABLE command line execution to complete, we'll see a progress message letting us know how much of the task has been completed. The message gets updated every 5 seconds, until the task is finished.

How it works...

The ALTER TABLE command converts the table over in two stages. First, it creates a new table, identical in every way to the old table, except that the new table uses the InnoDB or XtraDB storage engine (whichever we have configured as the active one) and copies all of the data to the new table.

In the second stage, ALTER TABLE removes the old table and renames the new table with the name of the old table.

On a table like awards that only has thirty thousand or more rows, the conversion is quick and easy; however, on a table with several billion rows, the conversion process will take significantly longer.

There's more...

Before converting all of the tables in a database from MyISAM or Aria to InnoDB/XtraDB, be aware that InnoDB/XtraDB uses more memory when running for the same amount of activity. Make sure our server has the memory capacity to handle it.

See also

主站蜘蛛池模板: 曲沃县| 石阡县| 藁城市| 化德县| 正镶白旗| 宜昌市| 和政县| 澄迈县| 正阳县| 远安县| 富锦市| 乐清市| 商都县| 手机| 嘉黎县| 顺平县| 新乐市| 佛冈县| 武宣县| 锡林浩特市| 沁源县| 嵊州市| 黎平县| 洛南县| 彩票| 西充县| 乌拉特前旗| 宾阳县| 巴林左旗| 社旗县| 延津县| 泉州市| 鄄城县| 漳浦县| 镇宁| 当雄县| 太原市| 安多县| 桦川县| 盘锦市| 洪江市|