首页 / MYSQL / MySQL入门学习笔记之存储引擎
MySQL入门学习笔记之存储引擎
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL入门学习笔记之存储引擎,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7444字,纯文字阅读大概需要11分钟。
内容图文
![MySQL入门学习笔记之存储引擎](/upload/InfoBanner/zyjiaocheng/474/f56815ba3fdb4095979be3afa43f869f.jpg)
存储引擎就是指表的类型,数据库的存储引擎决定了表在计算机中的存储方式。而存储引擎的概念是MySQL的特点,是一种插入式的存储引擎概念。MySQL数据库中的表可以使用不同的方式存储。
2、如何查看MySQL 中支持的存储引擎?
在命令行中输入: SHOW ENGINES;
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 | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ 9 rows in set (0.00 sec)
在命令后面通过参数 ‘\G’可以调整数据的输出格式,使得显示更加直观。
mysql> SHOW ENGINES \G
mysql>SHOW ENGINES \G
*************************** 1. row *************************** Engine: FEDERATED Support: NO Comment: Federated MySQL storage engine Transactions: NULL XA: NULL Savepoints: NULL *************************** 2. row *************************** Engine: MRG_MYISAM Support: YES Comment: Collection of identical MyISAM tables Transactions: NO XA: NO Savepoints: NO *************************** 3. row *************************** Engine: MyISAM Support: YES Comment: MyISAM storage engine Transactions: NO XA: NO Savepoints: NO *************************** 4. row *************************** Engine: BLACKHOLE Support: YES Comment: /dev/null storage engine (anything you write to it disappears) Transactions: NO XA: NO Savepoints: NO *************************** 5. row *************************** Engine: CSV Support: YES Comment: CSV storage engine Transactions: NO XA: NO Savepoints: NO *************************** 6. row *************************** Engine: MEMORY Support: YES Comment: Hash based, stored in memory, useful for temporary tables Transactions: NO XA: NO Savepoints: NO *************************** 7. row *************************** Engine: ARCHIVE Support: YES Comment: Archive storage engine Transactions: NO XA: NO Savepoints: NO *************************** 8. row *************************** Engine: InnoDB Support: DEFAULT Comment: Supports transactions, row-level locking, and foreign keys Transactions: YES XA: YES Savepoints: YES *************************** 9. row *************************** Engine: PERFORMANCE_SCHEMA Support: YES Comment: Performance Schema Transactions: NO XA: NO Savepoints: NO 9 rows in set (0.00 sec)
查询结果参数说明:
Engine参数:表示存储引擎的名称
Support参数:表示是否支持该类型的存储引擎,YES表示支持,NO表示不支持。
Comment参数:对该引擎的一些描述。
Transactions 参数:表示是否支持事务处理,YES表示支持,NO不支持。
XA参数:表示是否遵循分布式交易处理的XA规范,YES 支持,NO不支持。
Savepoints参数:表示是否支持保存点,可以使事务回滚到保存点,yes表示支持。
其它方法查询:
mysql> SHOW VARIABLES LIKE ‘have%‘
查询结果如下:
mysql>SHOW VARIABLES LIKE ‘have%‘; +----------------------+----------+ | Variable_name | Value | +----------------------+----------+ | have_compress | YES | | have_crypt | NO | | have_dynamic_loading | YES | | have_geometry | YES | | have_openssl | DISABLED | | have_profiling | YES | | have_query_cache | YES | | have_rtree_keys | YES | | have_ssl | DISABLED | | have_symlink | YES | +----------------------+----------+ 10 rows in set (0.00 sec)
参数说明:Variable_name表示存储引擎的名称, Value表示MySQL的支持情况
YES 表示支持,NO表示不支持,DISABLED 表示支持但没有开启。
查看默认支持的存储引擎:
Mysql> SHOW VARIABLE LIKE ‘storage_engine‘;
mysql>SHOW VARIABLES LIKE ‘storage_engine‘; +----------------+--------+ | Variable_name | Value | +----------------+--------+ | storage_engine | InnoDB | +----------------+--------+ 1 row in set (0.00 sec)
从输出结果中看出,本版本中用的默认存储引擎为InnoDB
注意:本实验中用到的mysql版本为5.6,在使用5.7的版本输入该命令时,发现
不能输出,出现警告信息,原因未知。
可以 通过修改MySQL的配置文件,来修改MySQL中默认的存储引擎,在my.ini文件
中将"default-storage-engine=INNODB"改为“default-storage-engine=MyISAM”,修改完成后
需要重启一下服务,修改才能生效。
3、InnoDB存储引擎
InnoDB 是MySQL数据库中的默认的存储引擎,InnoDB给MySQL表提供了事务、回滚、崩溃修
复能力 和多版本并发控制的事务安全 。
特点:
1> 支持自增长列AUTO_INCREMENT ,自增长列不能为空,而且值必须唯一,在MySQL中规定自增长列必须为主键。
2> 支持外键FOREIGN KEY 外键所在的表为子表,外键所依赖的表为父表。父表中被子表
外键关联 的字段必须为主键。当删除、更新父表中的某条信息时,子表也必须有相应的改变。
3> InnoDB存储引擎创建的表的表结构存储在.frm文件中。数据和索引存储在innodb_data_home_dir和innodb_data_file_path定义的表空间中。
优点:提供良好的事务管理、崩溃修复能力和并发控制。
缺点: 读写效率稍差,占用的数据空间相对较大。
4、 MyISAM存储引擎
特点:MyISAM存储引擎的表存储为3个文件。文件名与表名相同。扩展名包括frm、MYD、
MYI 。frm为扩展名的文件存储表的结构,MYD为扩展名的文件存储数据,MYI为扩展名的文件存储索引。
优点:占用空间小。处理速度快。
缺点:不支持事务的完整性和并发性。
5、MEMORY 存储引擎
MEMORY存储引擎是存储在内存中的内容来创建表,所有的数据都是放在内存中的。每个MEMORY存储引擎的表对应一个磁盘文件。文件名与表名相同,类型为frm 该文件只存储表的结构。数据文件是存储在内存当中的,有利于数据的快速处理,提高整个表的处理效率。
6、InnoDB 、MyISAM、MEMORY三种存储引擎的对比
表1 3种存储引擎的对比
特性 | InnoDB | MyISAM | MEMORY |
事务安全 | 支持 | 无 | 无 |
存储限制 | 64TB | 有 | 有 |
空间使用 | 高 | 低 | 低 |
内存使用 | 高 | 低 | 高 |
插入数据的速度 | 低 | 高 | 高 |
对外键的支持 | 支持 | 无 | 无 |
本文出自 “11978551” 博客,请务必保留此出处http://11988551.blog.51cto.com/11978551/1879819
MySQL入门学习笔记之存储引擎
标签:计算机 mysql 数据库
本文系统来源:http://11988551.blog.51cto.com/11978551/1879819
内容总结
以上是互联网集市为您收集整理的MySQL入门学习笔记之存储引擎全部内容,希望文章能够帮你解决MySQL入门学习笔记之存储引擎所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。