三 使用存储引擎

方法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. PHP错误 。Parse error: syntax error, unexpected T_INLINE_HTML, expecting T_ENDSWITCH or T_CASE or T_DEFAULT

    If you wan't to use the alternative syntax for switch statements this won't work: <div> <?p ...

  2. MFC 刷新函数:Invaldate,UpdateWindow,InvaldateRect

    在窗口刷新和绘制的过程中,常常需要用到窗口刷新函数.一般用于窗口图形刷新的函数有:UpdateWindows().Invaldate().InvaldateRect(). 先说UpdateWindow ...

  3. 子页面iframe跨域执行父页面定义的JS方法

    问题需求:父页面与子页面iframe跨域嵌套,子页面要触发父页面所定义的js方法.父子页面的数据传递. 下文中会用到一些文件:父页面: parent.html嵌在父页面的子iframe页面:child ...

  4. 原生js--客户端存储的种类

    客户端存储遵循同源策略,不同的站点页面之间不可以相互读取对方的数据,但同一站点的不同页面之间可以共享存储的数据 客户端存储的种类: 1.web存储 localStorage.sessionStorag ...

  5. jQuery事件处理(六)

    1.通过一步步调试的的方法观察了一下存放到cache中的事件及其处理程序的数据格式: { events : { // 根据事件类型存放添加到该元素上的所有事件,下面以click为例 click : [ ...

  6. java(3) 面向对象

    1.super关键字 * 使用super关键字调用父类的成员变量和成员方法.具体格式: super.成员变量 super.成员方法([参数1,参数2...]) * 使用super关键字调用父类的构造方 ...

  7. H.264 White Paper学习笔记(二)帧内预测

    为什么要有帧内预测?因为一般来说,对于一幅图像,相邻的两个像素的亮度和色度值之间经常是比较接近的,也就是颜色是逐渐变化的,不会一下子突变成完全不一样的颜色.而进行视频编码,目的就是利用这个相关性,来进 ...

  8. LeetCode 9 Palindrome Number(回文数字判断)

    Long Time No See !   题目链接https://leetcode.com/problems/palindrome-number/?tab=Description   首先确定该数字的 ...

  9. 2016中国app年度排行榜:十大行业、25个领域、Top 500 和2017趋势预测

    本文为猎豹全球智库联合猎豹移动大数据平台libra.科技顶尖媒体36kr联合发布,如需转载必须在文章开头注明“来源:猎豹全球智库”和作者姓名,且不得更改或增删文中所有信息. 本文作者:猎豹全球智库 容 ...

  10. 使用curl进行s3服务操作

    最近使用curl对s3进行接口测试,本想写个总结文档,但没想到已有前辈写了,就直接搬过来做个记录吧,原文见: http://blog.csdn.net/ganggexiongqi/article/de ...