数据库中的锁、存储引擎和E-R模型简介

1、数据库中的锁

  1)锁:指的是对数据库的控制权
  2)目的:解决多个工作单元并发操作数据的正确性
  3)分类:
    a)锁类型
        1、读锁(Read Lock)(共享锁):加锁后,可以读取,但是不能修改
   2、写锁(Write Lock)(排它锁):加锁后,不可以进行读写
    b)锁粒度
   1、行级锁(细粒锁):锁定一行,并发效率高,控制较为复杂,消耗资源多
   2、表级锁(粗粒锁):锁定整张表,并发效率低,控制简单,消耗资源少

2、存储引擎

  1)什么是存储引擎:表的存储方式,包括:存储机制,索引机制,锁定方式
  2)基本操作
  -查看支持的存储引擎 show engines;
  - 查看某个表的存储引擎 show create table *;
  -建表时候指定存储引擎

create table t1 (name varchar(32))engine = innodb; -- 默认数据库引擎为innodb

  -修改表的存储引擎:

alter table t1 engine= MyISAM; -- 修改t1表的默认数据库引擎为MyISAM

  3)常用的存储引擎的特点
    a)InnoDB
  -支持数据库事务,行锁定,支持外键(FK)
  -共享表空间
    表名.frm:表结构和索引
    表名.ibd:表记录

show global variables '%datadir%' -- 查看mysql表存储的文件目录

  -适用场合
    更新密集操作的表,并发效率较高
    要求支持数据库事务
    要求支持外键约束
    要求支持auto_increment字段

    b)MyISAM
  -支持表级锁定、不支持事务、不支持外键,不支持行锁定,访问速度快
  -独享表空间
    表名.frm:表结构
    表名.myd:表数据
    表名.myi:表索引
  -适用场合
    查询操作较多
    数据一致性较低(不支持事务)
    没有外键约束
    c)Memory(内存表):
  -表结构存储在磁盘中,数据存储在内存当中
    特点:访问速度快,占内存
  -文件:表名.frm 存储表结构
  -服务或者机器重启后,表中的数据丢失
  -适用场合:
    数据量小,访问速度要求极快,访问频率高
    数据丢失后不会造成影响

3)E-R模型(实体关系模型) 

a)实体(entity):现实中可以区分的事物称为实体
  b)关系(relationship):实体之间的联系
  - 一对一关系
  - 一对多的关系
  - 多对多的关系
  c)属性:实体所具有的数据特征
  d)E-R图:用图形化的方式,表达实体键的关系
  矩形:表示实体
  椭圆:表示属性
  菱形:实体之间的关系
   一对一:菱形左右各写一个1
   一对多:菱形左右各写一个1,N
   多对多:菱形左右分别用M,N表示

posted @ 2019-01-07 19:08  你说你有点难追  阅读(194)  评论(0编辑  收藏  举报