您当前的位置: 首页 >  sql

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MySQL高级——Mysql数据库存储引擎简介

小志的博客 发布时间:2021-01-29 22:29:43 ,浏览量:0

目录
    • 一、Mysql数据库各个引擎简介
    • 二、mysql数据库中MyISAM和InnoDB存储引擎区别
    • 三、mysql数据库存储引擎查看命令

一、Mysql数据库各个引擎简介
  1. InnoDB存储引擎 InnoDB是MySQL的默认事务型引擎,它被设计用来处理大量的短期(short-lived)事务。除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB引擎。行级锁,适合高并发情况

  2. MyISAM存储引擎 MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM不支持事务和行级锁(myisam改表时会将整个表全锁住),有一个毫无疑问的缺陷就是崩溃后无法安全恢复。

  3. Archive引擎 Archive存储引擎只支持INSERT和SELECT操作,在MySQL5.1之前不支持索引。 Archive表适合日志和数据采集类应用。适合低访问量大数据等情况。 根据英文的测试结论来看,Archive表比MyISAM表要小大约75%,比支持事务处理的InnoDB表小大约83%。

  4. Blackhole引擎 Blackhole引擎没有实现任何存储机制,它会丢弃所有插入的数据,不做任何保存。但服务器会记录Blackhole表的日志,所以可以用于复制数据到备库,或者简单地记录到日志。但这种应用方式会碰到很多问题,因此并不推荐。

  5. CSV引擎 CSV引擎可以将普通的CSV文件作为MySQL的表来处理,但不支持索引。 CSV引擎可以作为一种数据交换的机制,非常有用。 CSV存储的数据直接可以在操作系统里,用文本编辑器,或者excel读取。

  6. Memory引擎 如果需要快速地访问数据,并且这些数据不会被修改,重启以后丢失也没有关系,那么使用Memory表是非常有用。Memory表至少比MyISAM表要快一个数量级。(使用专业的内存数据库更快,如redis)

  7. Federated引擎 Federated引擎是访问其他MySQL服务器的一个代理,尽管该引擎看起来提供了一种很好的跨服务器的灵活性,但也经常带来问题,因此默认是禁用的。

二、mysql数据库中MyISAM和InnoDB存储引擎区别

注:innodb 主键为聚簇索引,基于聚簇索引的增删改查效率非常高。

对比项MyISAMInnoDB主外键不支持支持事务不支持支持树结构myisam 索引使用 b-tree innodb索引使用 B+ TREE行表锁表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作行锁,操作时只锁某一行,不对其它行有影响,适合高并发的操作缓存只缓存索引,不缓存真实数据不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响表空间小大关注点性能事务默认安装是是用户表默认使用否是自带系统表使用是否 三、mysql数据库存储引擎查看命令
  • 查看你的mysql现在已提供什么存储引擎
  • mysql> show engines; 在这里插入图片描述
  • 看你的mysql当前默认的存储引擎
  • mysql> show variables like ‘%storage_engine%’; 在这里插入图片描述
关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.1371s