MySQL存储引擎
2018-01-27 16:01
190 查看
什么是存储引擎?
MySQL可以将数据以不同的技术存储在文件(内存)中,这种技术就成为存储引擎。每种存数引擎使用不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能。
MySQL中常用的几种存储引擎如下:
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set
可以在mysql的命令窗口中可以使用show engines;查看。
show variables like '%storage_engine'; //查看MySQL的默认引擎
mysql> show variables like '%storage_engine';
+----------------------------------+--------+
| Variable_name | Value |
+----------------------------------+--------+
| default_storage_engine | InnoDB |
| default_tmp_storage_engine | InnoDB |
| internal_tmp_disk_storage_engine | InnoDB |
+----------------------------------+--------+
3 rows in set
设置存储引擎
通过修改MySQL配置文件实现- default-storage-engine = engine
通过创建数据表命令来实现- CREATE TABLE tbl_name(......) ENGINE = engine;
通过修改数据表命令实现- ALTER TABLE tbl_name ENGINE [=] engine_name;
不同存储引擎的特点如下:
详细介绍可参考:MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)
并发控制:
当多个连接对记录进行修改时保证数据的一致性和完整性。系统使用锁系统来解决这个并发控制,这种锁分为:
1).共享锁(读锁)---在同一时间内,多个用户可以读取同一个资源,读取过程中数据不会发生任何变化。
2).排他锁(写锁)---在任何时候只能有一个用户写入资源,当进行写锁时会阻塞其他的读锁或者写锁操作。
3.锁的力度(也叫锁的颗粒)锁策略(锁定时的单位)
---表锁,是一种开销最小的锁策略。得到数据表的写锁
---行锁,是一种开销最大的锁策略。并行性最大表锁的开销最小,因为使用锁的个数最小,行锁的开销最大,因为可能使用锁的个数比较多。
事务处理:
事务处理:整个过程每一个单元全部完成才算事务处理成功,某一个单元失败事务就会回滚.
主要作用:保证数据库的完整性。
事务的特性:原子性、一致性、隔离性、持久性简称:A(Atomic)、C(Consistency)、I(Isolation)、D(Durable)
外键:是保证数据一致性的策略。
索引:是对数据表中一列或者多列的值进行排序的一种结构。使用索引可以快速访问数据表的特定信息。索引是进行记录快速定位的一种方法。索引好比目录。索引可以划分为:普通索引、唯一索引、全文索引。
MySQL可以将数据以不同的技术存储在文件(内存)中,这种技术就成为存储引擎。每种存数引擎使用不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能。
MySQL中常用的几种存储引擎如下:
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set
可以在mysql的命令窗口中可以使用show engines;查看。
show variables like '%storage_engine'; //查看MySQL的默认引擎
mysql> show variables like '%storage_engine';
+----------------------------------+--------+
| Variable_name | Value |
+----------------------------------+--------+
| default_storage_engine | InnoDB |
| default_tmp_storage_engine | InnoDB |
| internal_tmp_disk_storage_engine | InnoDB |
+----------------------------------+--------+
3 rows in set
设置存储引擎
通过修改MySQL配置文件实现- default-storage-engine = engine
通过创建数据表命令来实现- CREATE TABLE tbl_name(......) ENGINE = engine;
通过修改数据表命令实现- ALTER TABLE tbl_name ENGINE [=] engine_name;
不同存储引擎的特点如下:
详细介绍可参考:MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)
并发控制:
当多个连接对记录进行修改时保证数据的一致性和完整性。系统使用锁系统来解决这个并发控制,这种锁分为:
1).共享锁(读锁)---在同一时间内,多个用户可以读取同一个资源,读取过程中数据不会发生任何变化。
2).排他锁(写锁)---在任何时候只能有一个用户写入资源,当进行写锁时会阻塞其他的读锁或者写锁操作。
3.锁的力度(也叫锁的颗粒)锁策略(锁定时的单位)
---表锁,是一种开销最小的锁策略。得到数据表的写锁
---行锁,是一种开销最大的锁策略。并行性最大表锁的开销最小,因为使用锁的个数最小,行锁的开销最大,因为可能使用锁的个数比较多。
事务处理:
事务处理:整个过程每一个单元全部完成才算事务处理成功,某一个单元失败事务就会回滚.
主要作用:保证数据库的完整性。
事务的特性:原子性、一致性、隔离性、持久性简称:A(Atomic)、C(Consistency)、I(Isolation)、D(Durable)
外键:是保证数据一致性的策略。
索引:是对数据表中一列或者多列的值进行排序的一种结构。使用索引可以快速访问数据表的特定信息。索引是进行记录快速定位的一种方法。索引好比目录。索引可以划分为:普通索引、唯一索引、全文索引。
相关文章推荐
- mysql优化系列02--(存储引擎选择)
- mysql里面的伪事务-----MyISAM存储引擎的锁机制
- MySQL存储引擎通常有哪3种?各自分别有什么特点?应用场景是哪些?
- Mysql存储引擎小析
- MySQL存储引擎比较
- MySQL查看当前用户、存储引擎、日志
- MySQL各存储引擎(INNODB,MyISAM等)的区别及其启动方法
- MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)
- Mysql存储引擎简介
- mysql 的存储引擎种类 以及分类 区别
- MYSQL存储引擎介绍
- 浅谈MySql的存储引擎(表类型)
- mysql 的存储引擎种类 以及分类 区别
- MySQL的存储引擎MyISAM与InnoDB有什么区别
- Mysql各种存储引擎的特性以及如何选择存储引擎
- MySQL 温故而知新--Innodb存储引擎中的锁
- Mysql如何选择存储引擎
- mysql存储引擎之myisam学习
- Mysql存储引擎MyISAM的常见问题(表损坏、无法访问、磁盘空间不足)
- mysql存储引擎简介