MySQL修改默认存储引擎
Jun 07, 2016 pm 03:52 PMmysql存储引擎: 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,再导入的方式。

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Compétences de traitement de structures de données volumineuses de PHP

Comment optimiser les performances des requêtes MySQL en PHP ?

Comment utiliser la sauvegarde et la restauration MySQL en PHP ?

Quels sont les scénarios d'application des types d'énumération Java dans les bases de données ?

Comment insérer des données dans une table MySQL en utilisant PHP ?

Comment corriger les erreurs mysql_native_password non chargé sur MySQL 8.4

Comment utiliser les procédures stockées MySQL en PHP ?

Comment créer une table MySQL en utilisant PHP ?
