三 使用存储引擎

方法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. win10找回Windows照片查看器

  2. Android学习之DatePicker和TimePicker

    在Android开发的应用程序中,通常都会有时间和日期选择的需求,下面就对日期选择控件DatePicker和时间选择控件TimePicker的基本使用方法进行介绍:        DatePicker ...

  3. 微信JSSDK支付接口-安卓机无法正常调起接口

    今天碰到个问题,是项目调起微信支付接口,苹果机都没有什么问题,但是安卓机的情况就是支付接口出现一下就消失了 试了将error反馈信息弹出来,也就是显示choosewxpay fail 找了半天不知道什 ...

  4. openldap slapd.conf参数

    已安装系统的 /etc/openldap/slapd.conf 中包含 LDAP 服务器的完整配置文件.在此简述了其中的各个项并说明了必要的调整.以符号 (#) 为前缀的项处于非活动状态.必须取消这个 ...

  5. 【软件分析与挖掘】ELBlocker: Predicting blocking bugs with ensemble imbalance learning

    摘要: 提出一种方法——ELBlocker,用于自动检测出Blocking Bugs(prevent other bugs from being fixed). 难度在于这些Blocking Bugs仅 ...

  6. 查询sql server 2008所有表和行数

    查询sql server 2008所有表和行数 SELECT a.name, b.rows FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.i ...

  7. 浅谈CSS盒子模型

    [摘要]盒子模型是CSS中的一个重要概念,虽然CSS中没有盒子这个单独的属性对象,但它却是CSS中无处不在的一个重要组成部分.掌握盒子模型的原理和使用方法可以极大地丰富HTML元素的表现效果,同时对于 ...

  8. 【分享】IT产业中的三大定理(三) —— 反摩尔定理 (Reverse Moore's Law)

    Google(谷歌)的 CEO 埃里克·施密特在一次采访中指出,如果你反过来看摩尔定理,一个 IT 公司如果今天和十八个月前卖掉同样多的.同样的产品,它的营业额就要降一半.IT 界把它称为反摩尔定理. ...

  9. Maven —— scope 元素的值及其含义

    1.compile 缺省值,所属依赖在所有的classpath中可用,同时它们也会被打包(随着项目一起发布). 2.provided 只有当JDK或者某个容器已提供该依赖之后才使用.如servlet. ...

  10. 属性特性get/set

    get/set访问器是属性的特性: 特性只有内部才用,因此在javaScript中不能直接访问他们: (1)数据属性——包含一个数据值的位置.这个位置可以读入和写入值. 数据属性有描述其行为的四个特性 ...