存储引擎

打印 上一主题 下一主题

主题 867|帖子 867|积分 2601

表在数据库中的存储方式。
存储引擎只存在mysql中,(Oracle中有对应机制,但是不叫存储引擎)。
完整的建表语句:
  1. CREATE TABLE mytable(
  2.    id  INT(10) PRIMARY KEY,
  3.    username VARCHAR(30) NOT NULL,
  4.    PASSWORD VARCHAR(30)
  5. )ENGINE = InnoDB Default CAHRSET=UTF8;
复制代码
注意:在MYSQL当中,凡是标识符可以使用飘号括起来,最好别用,不通用!
建表的时候可以指定存储引擎,也可以指定字符集。
mysql默认的存储引擎是InnoDB的方式!默认采用的字符集是UFT-8
  1. mysql> show engines \G   #查看当前,mysql版本支持的存储引擎命令! 当前MYSQL版本是5.7.33,支持9种存储引擎!
复制代码
1.常见的存储引擎:

  • MyISAM 存储索引
  • InnoDB 存储索引
  • MEMORY 存储索引
2.MyISAM 存储引擎:
MyISAM:这种存储引擎不支持事务。是最常用的但不是默认的
  1. Engine: MyISAM
  2.      Support: YES
  3.      Comment: MyISAM storage engine
  4. Transactions: NO     #不支持事务!
  5.           XA: NO
  6.   Savepoints: NO
复制代码
它管理的表具有以下特征:
 
使用三个文件表示每个表 :

  • 格式文件 — 存储表的结构(mytable.frm)
  • 数据文件 — 存储表的数据(mytable.MYD)
  • 索引文件 — 存储表中索引的文件(mytable.MYI)
优点:可被转换为压缩,来节省空间,并且可以转换为只读表,提高检索效率!
缺点:不支持事务!
3.InnoDB 存储引擎:
支持事务,行级锁,外键等 ;这种存储引擎安全。
  1.       Engine: InnoDB
  2.      Support: DEFAULT
  3.      Comment: Supports transactions, row-level locking, and foreign keys
  4. Transactions: YES
  5.           XA: YES
  6.   Savepoints: YES
复制代码

  • 表的结构存储在xxx.frm文件当中
  • 数据存储在tablespace这样的表空间当中(逻辑概念),无法被压缩,无法被转换为只读!
  • 这种InnoDB存储引擎在MYSQL数据库崩溃之后提供自动恢复机制!【事务、安全、重量级】
  • 支持级联删除和级联更新。
4.MEMORY 存储引擎:
所有数据保存在内存中,断电即失,但是查询速度超级快!
  1.     Engine: MEMORY
  2.      Support: YES
  3.      Comment: Hash based, stored in memory, useful for temporary tables
  4. Transactions: NO
  5.           XA: NO
  6.   Savepoints: NO
复制代码

  • 在数据库目录当中,每个表均已.frm格式的文件表示
  • 表数据以及索引被存储在内存当中
  • 表级锁机制
  • 不能包含TEXT(CLOB)或BLOB字段
  • 查询速度快

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

飞不高

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表