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

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

主站蜘蛛池模板: 特克斯县| 荃湾区| 曲水县| 屯昌县| 军事| 正定县| 策勒县| 河南省| 和平区| 陇川县| 马尔康县| 水城县| 博乐市| 大埔区| 宜兰县| 江永县| 白银市| 宝清县| 林芝县| 策勒县| 连南| 德格县| 县级市| 日喀则市| 湖南省| 昭觉县| 任丘市| 云林县| 韩城市| 行唐县| 宝坻区| 北流市| 拜城县| 寻甸| 怀柔区| 乐陵市| 股票| 扶绥县| 西青区| 阳曲县| 山阳县|