MySQL 数据库/表 存储引擎查看与修改

目录

存储引擎概述

MySQL常用引擎

查看数据库支持的存储引擎

查看数据库当前使用的存储引擎

修改 MySQL 数据库默认存储引擎

查看数据表存储引擎

修改数据表存储引擎


存储引擎概述

1、存储引擎通俗的说就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。

2、因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。

3、Oracle 和 SQL Server 等数据库只有一种存储引擎,所有数据存储管理机制都是一样的;而MySql数据库提供了多种存储引擎,用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。

MySQL 数据库/表 存储引擎查看与修改_第1张图片

MySQL常用引擎

1、MySQL 中目前广泛使用的是 MyISAM 和 InnoDB 两种引擎

2、mysql 5.5innDB 开始支持全文索引

MyISAM

0、MyISAM 引擎是 MySQL 5.1 及之前版本的默认引擎,它的特点是:

1)不支持行锁,读取时对需要读到的所有表加锁,写入时则对表加排它锁

2)不支持事务

3)不支持外键

4)不支持崩溃后的安全恢复

5)在表有读取查询的同时,支持往表中插入新纪录

6)支持 BLOB 和 TEXT 的前500个字符索引,支持全文索引

7)支持延迟更新索引,极大提升写入性能

8)对于不会进行修改的表,支持压缩表,极大减少磁盘空间占用

InnoDB

1、InnoDB 在 MySQL 5.5 及以后成为默认索引,它的特点是:

1.1)支持行锁,采用 MVCC 来支持高并发

1.2)支持事务

1.3)支持外键

1.4)支持崩溃后的安全恢复

1.5)不支持全文索引

1.6)InnoDB 是一个事务型存储引擎,为用户操作非常大的数据存储提供了一个强大的解决方案,已经被很多互联网公司使用。

2、在以下场合下,使用InnoDB是最理想的选择:

2.1)更新密集的表:InnoDB存储引擎特别适合处理多重并发的更新请求。

2.2)事务:InnoDB 存储引擎是支持事务的标准MySQL存储引擎。

2.3)自动灾难恢复:与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。

2.4)外键约束:MySQL支持外键的存储引擎只有InnoDB。

2.5)支持自动增加列 AUTO_INCREMENT 属性。

查看数据库支持的存储引擎

1、下面的操作以Server version: 5.0.51b-community-nt-log MySQL Community Edition (GPL)为前提

2、意义在于知道当前数据库支持哪些存储引擎,以及数据库当前默认使用的是哪种存储引擎

3、查询语句:show engines

MySQL 数据库/表 存储引擎查看与修改_第2张图片

4、Support列: YES表示当前版本支持这个存储引擎;DEFAULT表示该引擎是默认的引擎;NO表示不支持该存储引擎。

查看数据库当前使用的存储引擎

1、可以查看系统变量 default_storage_engine 或 storage_engine 来查看数据库当前使用的存储引擎

2、查询语句:show variables like '%storage_engine%';

MySQL 数据库/表 存储引擎查看与修改_第3张图片

3、根据 MySQL 数据库具体版本的不同,查询的结果可能会略有差异,主要结果如下:

1)default_storage_engine:表示永久表(permanent tables)的默认存储引擎。

2)default_tmp_storage_engine:表示临时表的默认存储引擎。

3)storage_engine:数据库当前使用的存储引擎

修改 MySQL 数据库默认存储引擎

1、通过对比 MySQL 常用存储引擎后,Java 开发其实主要就是使用 InnoDB 存储引擎,因为需要它支持事务以及设置外键等操作

2、实际开发中也会出现安装了不同版本的MySQL后,像平时一样使用Navicat为数据库表设置外键时,发现居然一点保存就自动消失了,反正就是死活不成功,后面一查才发现数据库使用的是MyISAM存储引擎

3、修改 MySQL 默认存储引擎,只需要修改其配置文件的一行配置即可,修改成功后,则以后无论 MySQL 是否重新启动服务,都会永久修改,想要采用哪种存储引擎时,则只需修改为对应的值即可。

5、注意:如果数据库之前使用的是 MyISAM 存储引擎,现在改为了INNODB,则数据库之前所建的表仍然采用的是之前的MyISAM 存储引擎,后面新建的表则会重新采用新的 INNODB 存储引擎

第一步

MySQL 数据库/表 存储引擎查看与修改_第4张图片

第二步

1、linux 系统中:找到 /etc/my.cnf,修改配置文件中的:default-storage-engine=InnoDB(没有时,增加即可)

2、windowns 系统中:找到安装目录 \mysql/my.ini,修改配置文件:default-storage-engine=InnoODB(没有时,增加即可)

MySQL 数据库/表 存储引擎查看与修改_第5张图片

MySQL 数据库/表 存储引擎查看与修改_第6张图片

第三步

1、再重新启动 MySQL 服务

MySQL 数据库/表 存储引擎查看与修改_第7张图片

第四步

1、重新连接数据库,再次查看数据库默认的存储引擎

MySQL 数据库/表 存储引擎查看与修改_第8张图片

MySQL 数据库/表 存储引擎查看与修改_第9张图片

MySQL 数据库/表 存储引擎查看与修改_第10张图片

查看数据表存储引擎

1、采用常用的语句:"show create table 表名;"   即可进行查看

2、注意:如果数据库之前使用的是 MyISAM 存储引擎,现在改为了INNODB,则数据库之前所建的表仍然采用的是之前的MyISAM 存储引擎,后面新建的表则会重新采用新的INNODB存储引擎

MySQL 数据库/表 存储引擎查看与修改_第11张图片

修改数据表存储引擎

1、通常有以下两种情况需要“修改某张表的存储引擎”

1)假如数据库默认为"MyISAM"存储引擎,现在想要修改其中某张表为“InnoDB”

2)或者是例如数据库默认存储引擎由原来的"MyISAM"修改为了“InnoDB”,现在想要将数据库中的所有或者部分表也要由原来的"MyISAM"修改为了“InnoDB”

2、修改语句为:"alter table 表名 engine=innodb;"

MySQL 数据库/表 存储引擎查看与修改_第12张图片

3、如果数据库有几十张甚至几百张表,这样一张一张修改是费时间的。所以可以用工具将它导出为sql,然后手动修改文件里面的参数

MySQL 数据库/表 存储引擎查看与修改_第13张图片

MySQL 数据库/表 存储引擎查看与修改_第14张图片

MySQL 数据库/表 存储引擎查看与修改_第15张图片

MySQL 数据库/表 存储引擎查看与修改_第16张图片

 

你可能感兴趣的:(Mysql)