MySQL快速入门07----存储引擎
来源:互联网 发布:如何看待知乎live 编辑:程序博客网 时间:2024/06/09 21:08
存储引擎:也叫表类型,指的是数据表的存储机制,索引方案等配套相关功能。不同的引擎,由于处理方式不同,会带来不同的功能或者相应优化,根据实际需求选择合理的引擎。
选择表的存储引擎的标准:
- 是否需要事务支持;
- 是否支持外键;
- 并发量的要求;
- 错误恢复的处理;
- 是否支持某些具体功能;
配置方案:
通过my.ini,可以配置:
在创建表,或者编辑表时,可以指定表的存储引擎。
default-storage-engine=INNODB
在创建表,或者编辑表时,可以指定表的存储引擎。
更改表引擎:
mysql> alter table pk_1 engine myisam;Query OK, 2 rows affected (0.13 sec)Records: 2 Duplicates: 0 Warnings: 0
mysql> alter table lin_student engine myisam;ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
mysql> create table room( -> id int primary key auto_increment, -> sz varchar(20) -> )engine myisam character set utf8;Query OK, 0 rows affected (0.05 sec)
InnoDB和myisam
区别:
(1)保存文件的方式不同:
myisam,一个表,三个文件:
tbl_name.frm 结构;
tbl_name.myd 数据;
tbl_name_myi 索引。
InnoDB一个表一个文件
一个结构文件tbl_name.frm
所有的innodb表,都使用相同的innodb存储表空间来保存数据和索引。
数据和索引的保存的文件不同:MyISAM是分开保存,而innodb是保存到表空间
MyIASM支持索引压缩,而Innodb索引和数据是绑定保存不压缩,体积大。
Innodb很多时候是行级锁,而myisam是表级锁,innodb的并发高。
InnoDB不支持FULLTEXT类型的索引(新版本的InnoDB也支持)。
Innodb支持事务,外键,数据完整性约束要强。而MYISAM不支持。
InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。
对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
MyIASM支持索引压缩,而Innodb索引和数据是绑定保存不压缩,体积大。
Innodb很多时候是行级锁,而myisam是表级锁,innodb的并发高。
InnoDB不支持FULLTEXT类型的索引(新版本的InnoDB也支持)。
Innodb支持事务,外键,数据完整性约束要强。而MYISAM不支持。
InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。
对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
通过show engines来查看MySQL的存储引擎:
mysql> show engines;+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| Engine | Support | Comment | Transactions | XA | Savepoints |+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL || MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO || MyISAM | YES | MyISAM storage engine | NO | NO | NO || BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO || CSV | YES | CSV storage engine | NO | NO | NO || MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO || ARCHIVE | YES | Archive storage engine | NO | NO | NO || InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES || PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
0 0
- MySQL快速入门07----存储引擎
- MySQL存储引擎--简介入门
- MySQL入门很简单-MySQL存储引擎
- MySQL存储过程快速入门
- mysql入门(存储引擎二十二)
- 【MySQL】MySQL存储引擎
- 【MySQL】MySQL存储引擎
- MySQL从入门到精通_1存储引擎
- mysql federated存储引擎引擎
- MySQL的存储引擎
- 1.5. MySQL存储引擎
- mysql存储引擎
- MySQL 存储引擎
- MySQL存储引擎
- Mysql的存储引擎
- MySQL存储引擎
- MySQL存储引擎-应用
- mysql存储引擎
- 两年java程序员的今后路线
- Android Studio 通过JNA调用 Clang编译的so库,以及Java JNA 调用x64dll,C# dllimport调用x86dll
- 字符串匹配(KMP、Tire、Map)
- springmvc工作流程及实例Demo
- Java Web学习(32): Servlet学习(五)
- MySQL快速入门07----存储引擎
- jQuery 开发插件
- centos7下快速安装mysql
- 最短路,Dijkstra(有趣的赛车比赛,uva 12661)
- AngularJs中directive详解
- iOS开发之蓝牙总结
- Python-ORM-SQLALchemy
- Groory(二) 字符串String+集合Collection篇---极速入门总结
- Execution failed for task ':app:clean'.