mysql have_crypt配置_MySQL入门学习笔记之存储引擎

1、什么是存储引擎?

存储引擎就是指表的类型,数据库的存储引擎决定了表在计算机中的存储方式。而存储引擎的概念是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种存储引擎的对比

特性InnoDBMyISAMMEMORY

事务安全支持无无

存储限制64TB有有

空间使用高低低

内存使用高低高

插入数据的速度低高高

对外键的支持支持无无

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值