三 使用存储引擎

方法1:建表时指定引擎

指定innodb,不写默认也是innodb

use 数据库先

create table innodb_t1(id int,name char)engine=innodb;
create table innodb_t2(id int)engine=innodb;
show create table innodb_t1;
show create table innodb_t2;
mysql> create table innodb_t1(id int,name char)engine=innodb;
Query OK, 0 rows affected (0.11 sec) mysql> create table innodb_t2(id int)engine=innodb;
Query OK, 0 rows affected (0.02 sec) mysql> show create table innodb_t1;
+-----------+----------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-----------+----------------------------------------------------------------------------------------------------------------------------+
| innodb_t1 | CREATE TABLE `innodb_t1` (
`id` int(11) DEFAULT NULL,
`name` char(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-----------+----------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec) mysql> show create table innodb_t1\G;
*************************** 1. row ***************************
Table: innodb_t1
Create Table: CREATE TABLE `innodb_t1` (
`id` int(11) DEFAULT NULL,
`name` char(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec) mysql> show create table innodb_t2\G;
*************************** 1. row ***************************
Table: innodb_t2
Create Table: CREATE TABLE `innodb_t2` (
`id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

方法2:在配置文件中指定默认的存储引擎

/etc/my.cnf
[mysqld]
default-storage-engine=INNODB
innodb_file_per_table=1

查看

[root@mysql ~]# cd /var/lib/mysql/db1/
[root@mysql db1]# ll
总用量 48
-rw-rw----. 1 mysql mysql 61 10月 6 03:50 db.opt
-rw-rw----. 1 mysql mysql 8586 10月 7 01:22 innodb_t1.frm
-rw-rw----. 1 mysql mysql 8556 10月 7 01:22 innodb_t2.frm
-rw-rw----. 1 mysql mysql 8586 10月 6 16:28 t1.frm
-rw-rw----. 1 mysql mysql 92 10月 6 17:29 t1.MYD
-rw-rw----. 1 mysql mysql 1024 10月 6 17:29 t1.MYI

练习

创建四个表,分别使用innodb,myisam,memory,blackhole存储引擎,进行插入数据测试

mysql> create table innodb__t_t1(id int,name char(10))engine=innodb;
Query OK, 0 rows affected (0.30 sec) mysql> create table innodb__t_t2(id int,name char(10))engine=myisam;
Query OK, 0 rows affected (0.06 sec) mysql> create table innodb__t_t3(id int,name char(10))engine=memory;
Query OK, 0 rows affected (0.01 sec) mysql>
mysql> create table innodb__t_t4(id int,name char(10))engine=blackhole;
Query OK, 0 rows affected (0.05 sec)

1.innodb存储引擎 我们看到t1表就是innodb,innodb表类型在硬盘上会对应2个文件 frm是表结构 ibd是t1表数据文件

2.memory存储引擎  memory特点是数据存在内存里,不存放在硬盘上,只有表结构 t3.frm 没有表数据

3.backhole存储引擎  也是只有表结构frm

4.myisam存储引擎 对应3个文件  一个frm表结构  ,MYD是myisam的data文件 ,MYI是myisam索引文件

[root@mysql db1]# ll
总用量 152
-rw-rw----. 1 mysql mysql 61 10月 7 04:52 db.opt
-rw-rw----. 1 mysql mysql 8586 10月 7 04:54 innodb__t_t1.frm
-rw-rw----. 1 mysql mysql 98304 10月 7 04:54 innodb__t_t1.ibd
-rw-rw----. 1 mysql mysql 8586 10月 7 04:54 innodb__t_t2.frm
-rw-rw----. 1 mysql mysql 0 10月 7 04:54 innodb__t_t2.MYD
-rw-rw----. 1 mysql mysql 1024 10月 7 04:54 innodb__t_t2.MYI
-rw-rw----. 1 mysql mysql 8586 10月 7 04:54 innodb__t_t3.frm
-rw-rw----. 1 mysql mysql 8586 10月 7 04:54 innodb__t_t4.frm

 总结:不同类型的表,在硬盘上有不同的体现,他们的存储机制都不一样

分别对四张表插入一条记录

mysql> insert into innodb__t_t1 values(1,'mike');
Query OK, 1 row affected (0.04 sec) mysql> insert into innodb__t_t2 values(1,'jack');
Query OK, 1 row affected (0.04 sec) mysql>
mysql> insert into innodb__t_t3 values(1,'peter');
Query OK, 1 row affected (0.00 sec) mysql>
mysql> insert into innodb__t_t4 values(1,'ken');
Query OK, 1 row affected (0.00 sec)

再查询一下四张表

mysql> select * from innodb__t_t1;
+------+------+
| id | name |
+------+------+
| 1 | mike |
+------+------+
1 row in set (0.11 sec) mysql> select * from innodb__t_t2;
+------+------+
| id | name |
+------+------+
| 1 | jack |
+------+------+
1 row in set (0.10 sec) mysql> select * from innodb__t_t3;
+------+-------+
| id | name |
+------+-------+
| 1 | peter |
+------+-------+
1 row in set (0.00 sec) mysql> select * from innodb__t_t4;
Empty set (0.00 sec)

第四张表是blackhole

结论

#blackhole,往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录

 memory表特点

从上面看到t3表,memory有数据

我们重启mysql服务后,把内存清理了,再查看 mermory的数据表

service mysqld restart

数据没有了

mysql> select * from db1.innodb__t_t3;
Empty set (0.00 sec)

memory存储引擎

#memory,在重启mysql或者重启机器后,表内数据清空
以后用的比较多存储引擎,表结构是 innodb

mysql 使用存储引擎的更多相关文章

  1. MYSQL的存储引擎一般只要哪些?

    根据个人个人见解: MySQL的存储引擎(构成.安全.锁) Myisam:数据操作快速的一种引擎,支持全文检索.文件保存在数据库名称为目录名的 目录中,有3个文件,分别是表定义文件(.frm).数据文 ...

  2. MySQL常用存储引擎及如何选择

    一.MySQL的存储引擎 完整的引擎说明还是看官方文档:http://dev.mysql.com/doc/refman/5.6/en/storage-engines.html 这里介绍一些主要的引擎 ...

  3. mysql 的存储引擎介绍

    在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库.而在设计表的时候,我们都会关注一个问题,使用什么存储引擎.等一下,存储引擎?什么是存储引擎? 什么是存储引擎? ...

  4. mysql数据库存储引擎及区别

    MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB).EXAMPLE.FEDERAT ...

  5. mysql之存储引擎和文件配置

    (查看系统服务,在运行里输入services.msc) 补充:将mysql做成系统服务:mysqld --install 取消:mysqld --romove 在服务中可以直接鼠标操作mysql服务的 ...

  6. MySQL数据库----存储引擎

    什么是存储引擎? 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操 ...

  7. MySql的存储引擎介绍

    下面主要介绍InnoDB.MyISAM和MEMEORY三种存储引擎. InnoDB存储引擎 InnoDB遵循CNU通用公开许可(GPL)发行.InnoDB已经被一些重量级互联网公司所采用,如雅虎.Sl ...

  8. MySQL之存储引擎(表类型)的选择

    和大部分的数据库不同,MySQL中有一个存储引擎的概念,用户可以根据数据存储的需求来选择不同的存储引擎.本次博客就来介绍一下MySQL中的存储引擎.MySQL版本 5.7.19. 概述 MySQL的存 ...

  9. MySql中存储引擎MyISAM与InnoDB区别于选择

    InnoDB: 支持事务处理等 不加锁读取 支持外键 支持行锁 不支持FULLTEXT类型的索引 不保存表的具体行数,扫描表来计算有多少行 DELETE 表时,是一行一行的删除 InnoDB 把数据和 ...

  10. MySQL常用存储引擎功能与用法详解

    本文实例讲述了MySQL常用存储引擎功能与用法. MySQL存储引擎主要有两大类: 1. 事务安全表:InnoDB.BDB. 2. 非事务安全表:MyISAM.MEMORY.MERGE.EXAMPLE ...

随机推荐

  1. linux系统开机自启程序-需要-root用户 -启动 -

    #!/bin/bashsh /home/hwjc/RSA/release2017-02-23/release2017-02-23/install.shsh /etc/init.d/mqtt.shifc ...

  2. 通过java的i/o机制进行图片流的存储以及对网络图片的存储

    存储内地图片思路:首先把原有的图片以流的方式读取出来,再以流的方式存储到目标文件: package imgStream; import java.io.*; public class ImgStrea ...

  3. audio_policy.conf说明(翻译)

    自己记着当笔记,水平有限,仅供参考 # # Audio policy configuration for generic device builds (goldfish audio HAL - emu ...

  4. Netty《一》

    作者:郭无心链接:https://www.zhihu.com/question/24322387/answer/78947405来源:知乎著作权归作者所有,转载请联系作者获得授权. Netty是什么? ...

  5. 泛型实体类List<>绑定到repeater

    后台代码: private void bindnewslist() { long num = 100L; List<Model.news> news = _news.GetList(out ...

  6. junit4 详解

    转:http://www.cnblogs.com/eggbucket/archive/2012/02/02/2335697.html JUnit4概述 JUnit4是JUnit框架有史以来的最大改进, ...

  7. word2010没有“标题2、标题3”样式的解决办法

    word2010没有“标题2.标题3”样式的解决办法 很多人用word的时候都喜欢用“标题1”“标题2”等样式来定义他们的文档标题,被这样定义的标题会出现在导航窗格中,使浏览起来非常方便.但是最近我发 ...

  8. WPS 2019 去除自动升级 和 广告、及优化的点

    搜狗输入法 里面的快捷键会影响wps的快捷键功能,需要关掉"搜狗输入法"里面的快捷键 1. 2.去除自动升级功能 3.去除 广告 WPS 2019 流程图(断网): 思维导图: 流 ...

  9. LeetCode 79 Word Search(单词查找)

    题目链接:https://leetcode.com/problems/word-search/#/description 给出一个二维字符表,并给出一个String类型的单词,查找该单词是否出现在该二 ...

  10. TFS Build做Web应用持续集成发布的一个技巧

    由于面向接口编程的关系,许多实现往往是动态注入运行,在一个项目中直接引用实现dll编译是不合理的.通常我们会在Post Build Event中添加一些xcopy命令将运行时才需要的dll复制到输出目 ...