mysql存储引擎和范式

范式

预备知识

1.码

(1)什么是码?
能唯一识别一行数据的就是码。
比如,你的身份证号,就是一个码;你的姓名不是码,因为世界上可能还有其他人叫这个名字,但是你的姓名加上你父亲和爷爷的姓名就基本上可以构成一个码。
(2)什么是候选码?
(3)什么是主码

2.函数依赖关系

(1)完全依赖
(2)部分依赖
(3)传递依赖

引擎

1.查看存储引擎:

show engines;

2.种类

MySQL给用户提供了许多不同的存储引擎。在MySQL中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。Support列的值表示某种引擎是否能使用:YES表示可以使用、NO表示不能使用、DEFAULT表示该引擎为当前默认的存储引擎。
使用下面sql可以查看默认使用的引擎:
show variables like ‘storage_engine’;
几种常见的存储引擎:

  • InnoDB存储引擎:
    InnoDB是事务型数据库的首选引擎
    1.支持事务安全表(ACID),其它存储引擎都是非事务安全表,支持行锁定和外键,MySQL5.5以后默认使用InnoDB存储引擎。
    2.支持事务处理,支持外键,支持崩溃修复能力和并发控制。
    3.如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。

  • MyISAM存储引擎:
    MyISAM拥有较高的插入、查询速度,但不支持事务,不支持外键。
    1 MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。
    2 插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。

  • MERGE存储引擎:
    Merge存储引擎是一组MyISAM表的组合,这些MyISAM表必须结构完全相同,merge表本身并没有数据,对merge类型的表可以进行查询,更新,删除操作,这些操作实际上是对内部的MyISAM表进行的。

3.关于存储引擎的一些命令:

  1. 查看表的存储引擎:
    Show create table table_name;
    或者
    show table status from db_name where name=‘table_name’;
  2. 修改表的存储引擎sql:
    Alter table table_name type=InnoDB;
    或者
    alter table student engine=MyISAM;
  3. 创建表时指定存储引擎:
    create table test1(id int) engine= MyISAM
    或者
vi /etc/my.cnf
[mysqld]
default-storage-engine=INNODB
  1. 或者使用命令修改:
    set default_storage_engine=MyISAM

猜你喜欢

转载自blog.csdn.net/fuzekun/article/details/104430182