Rumah pangkalan data tutorial mysql MySQL修改默认存储引擎

MySQL修改默认存储引擎

Jun 07, 2016 pm 03:52 PM
mysql Semak semula penyimpanan enjin lalai

mysql存储引擎: MySQL服务器采用了模块化风,各部分之间保持相对独立,尤其体现在存储架构上。存储引擎负责管理数据存储,以及MySQL的索引管理。通过定义的API,MySQL服务器能够与存储引擎进行通信。目前使用最多的是MyISAM和InnoDB。InnoDB被Oracle收购后

mysql存储引擎:

MySQL服务器采用了模块化风格,各部分之间保持相对独立,尤其体现在存储架构上。存储引擎负责管理数据存储,以及MySQL的索引管理。通过定义的API,MySQL服务器能够与存储引擎进行通信。目前使用最多的是MyISAM和InnoDB。InnoDB被Oracle收购后,MySQL自行开发的新存储引擎Falcon将在MySQL6.0版本引进。

MyISAM引擎是一种非事务性的引擎,提供高速存储和检索,以及全文搜索能力,适合数据仓库等查询频繁的应用。MyISAM中,一个table实际保存为三个文件,.frm存储表定义,.MYD存储数据,.MYI存储索引。

InnoDB则是一种支持事务的引擎。所以的数据存储在一个或者多个数据文件中,支持类似于Oracle的锁机制。一般在OLTP应用中使用较广泛。如果没有指定InnoDB配置选项,MySQL将在MySQL数据目录下创建一个名为ibdata1的自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的日志文件。

创建table时可以通过engine关键字指定使用的存储引擎,如果省略则使用系统默认的存储引擎:CREATE TABLE t (i INT) ENGINE = MYISAM;

查看系统中支持的存储引擎类型:

1 mysql> show engines;| Engine | Support | Comment || MyISAM | YES | Default engine as of MySQL 3.23 with greatperformance |

2 | MEMORY | YES | Hash based, stored in memory, useful for temporarytables |

3 | InnoDB | DEFAULT | Supports transactions, row-level locking, andforeign keys |

4 | BerkeleyDB | NO | Supports transactions and page-level locking|

5 | BLACKHOLE | NO | /dev/null storage engine (anything you write toit disappears) |

6 | EXAMPLE | NO | Example storage engine |

7 | ARCHIVE | YES | Archive storage engine |

8 | CSV | NO | CSV storage engine |

9 | ndbcluster | NO | Clustered, fault-tolerant, memory-based tables|

10 | FEDERATED | NO | Federated MySQL storage engine |

11 | MRG_MYISAM | YES | Collection of identical MyISAM tables |

12 | ISAM | NO | Obsolete storage engine |12 rows in set (0.00 sec)

标准安装程序中只提供部分引擎的支持,如果需要使用其他的存储引擎,需要使用源代码加不同的参数重新编译。其中DEFAULT表明系统的默认存储引擎,可以通过修改配置参数来变更:

default-storage-engine=MyISAM

查看某个存储引擎的具体信息

1 mysql> show engine InnoDB status\G;

一般安装系统默认是INNODB

default-storage-engine=INNODB

  1.可以在启动数据库服务器时在命令行后面加上–default-storage-engine或–default-table-type选项。
  2.更灵活的方式是在随MySQL服务器发布同时提供的MySQL客户端时指定使用的存储引擎。最直接的方式是在创建表时指定存储引擎的类型,向下面这样:

1 CREATE TABLE mytable (id int, titlechar(20)) ENGINE = INNODB

修改表的存储引擎:

1 ALTER TABLE engineTest ENGINE = INNODB;

修改默认存储引擎:

在mysql配置文件(linux下为/etc/my.cnf),在mysqld后面增加default-storage-engine=INNODB即可。

但是如果表建立的时候是MyISAM,要更改整个数据库表的存储引擎,一般要一个表一个表的修改,比较繁琐,可以采用先把数据库导出,得到SQL,把MyISAM修改成INNODB,再导入的方式。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kemahiran pemprosesan struktur data besar PHP Kemahiran pemprosesan struktur data besar PHP May 08, 2024 am 10:24 AM

Kemahiran pemprosesan struktur data besar PHP

Bagaimana untuk mengoptimumkan prestasi pertanyaan MySQL dalam PHP? Bagaimana untuk mengoptimumkan prestasi pertanyaan MySQL dalam PHP? Jun 03, 2024 pm 08:11 PM

Bagaimana untuk mengoptimumkan prestasi pertanyaan MySQL dalam PHP?

Bagaimana untuk menggunakan sandaran dan pemulihan MySQL dalam PHP? Bagaimana untuk menggunakan sandaran dan pemulihan MySQL dalam PHP? Jun 03, 2024 pm 12:19 PM

Bagaimana untuk menggunakan sandaran dan pemulihan MySQL dalam PHP?

Apakah senario aplikasi jenis penghitungan Java dalam pangkalan data? Apakah senario aplikasi jenis penghitungan Java dalam pangkalan data? May 05, 2024 am 09:06 AM

Apakah senario aplikasi jenis penghitungan Java dalam pangkalan data?

Bagaimana untuk memasukkan data ke dalam jadual MySQL menggunakan PHP? Bagaimana untuk memasukkan data ke dalam jadual MySQL menggunakan PHP? Jun 02, 2024 pm 02:26 PM

Bagaimana untuk memasukkan data ke dalam jadual MySQL menggunakan PHP?

Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4 Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4 Dec 09, 2024 am 11:42 AM

Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4

Bagaimana untuk menggunakan prosedur tersimpan MySQL dalam PHP? Bagaimana untuk menggunakan prosedur tersimpan MySQL dalam PHP? Jun 02, 2024 pm 02:13 PM

Bagaimana untuk menggunakan prosedur tersimpan MySQL dalam PHP?

Bagaimana untuk membuat jadual MySQL menggunakan PHP? Bagaimana untuk membuat jadual MySQL menggunakan PHP? Jun 04, 2024 pm 01:57 PM

Bagaimana untuk membuat jadual MySQL menggunakan PHP?

See all articles