数据库-存储引擎

存储引擎

  • 数据库存储引擎是数据库底层软件组织。
  • 数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。
  • 不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。
  • 存储引擎只要有:InnoDB、Myisam、Memory等。
  • 通过mysql查看存储引擎
    • show engines命名查看mysql使用的引擎 在这里插入图片描述
    • 不同

InnoDB

  • InnoDB是mysql默认的引擎,支持事务安全表(ACID),支持行级锁定和外键
  • InnoDB适用于经常更新的表,适合处理多重并发的更新请求
  • 可以通过bin-log日志等方式从灾难中恢复
  • 外键约束
  • 支持自动增加列属性auto-increment
  • InnoDB底层存储结构为B+树,B+树的数据域存储的是实际的数据,这种索引为聚集索引
  • InnoDB表数据文件本身就是主索引
  • InnoDB的辅助索引树存储的是相应记录主键的值

MYISAM

  • MyIsam采用的是静态索引结构,基于ISAM存储引擎
  • MyIsam的索引结构为B+树,B+树的数据域存储的内容为实际数据的地址,这种索引为非聚集索引
  • MyIsam执行读取操作数据很快,而且不占用大量的内存和存储资源,但不提供对数据库事务、行级锁和外键支持
  • 当INSERT(插入)或UPDATE(更新)数据时需要锁定整个表,效率降低

Memory

  • Memory(Heap堆内存),使用存在内存中的内容创建表
  • 每个Memory表只实际对应一个磁盘文件,该类型的表访问速度非常快,表数据存放在内存中
  • 默认使用HASH索引
  • 支持散列索引和B树索引,B树索引可以使用部分查询和通配查询,也可以使用<,>和>=等操作符方便数据挖掘

索引

  • 索引是帮助MYSQL高效获取数据的数据结构
  • 常见的查询算法:顺序查找、二分查找、二叉树排序树查找、哈希散列法、分块查询、平衡多路搜索树、B树

索引原则

  • 选择唯一性索引
  • 为经常需要排序、分组和联合操作的字段建立索引
  • 为常作为查询条件的字段建立索引
  • 限制索引数量
  • 尽量使用数据量少得索引
  • 尽量使用前缀来索引

存储过程

  • 一组为了完成特定功能的sql语句集,存储在数据库中
  • 经过第一次编译后再次调用不需要二次编译,用户通过指定存储过程的名字并给出参数调用
  • 存储过程可以接收参数,调用另一过程,返回状态值
  • 为调用者提供动态结果
  • 远程SQL server中运行

触发器

  • 一段自动执行的程序,是一种特殊的存储过程
  • 触发器是对某一个表进行操作时触发,系统自动调用执行该表上对应的触发器
  • 优点:安全性、审计、实现复杂的数据完整性规则、同步实时复制表中数据
  • 缺点:不能调用将数据返回客户端的存储过程、不能采用call语句的sql语句、不能使用显式或隐式方式开始或结束事务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值