数据库存储引擎学习总结

打印 上一主题 下一主题

主题 1926|帖子 1926|积分 5778

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
sql存储引擎

   前提:阅读完能回答以下题目
1、InnoDb引擎和MyISAM引擎的区别?
2、存储引擎的选择?
3、存储引擎,介绍一下
4、mysql的体系结构,简单回答下
  1、Mysql体系结构



  • 1、客户端

    • 用来毗连mysql的客户端、毗连数据库的应用程序或者API接口

  • 2、毗连池

    • 管理和缓冲用户毗连,为客户端请求做毗连处理
    • 主要负责用户登录数据库,进行用户的身份认证,包括校验账户暗码、权限等操纵。

  • 3、SQL处理层
    接收用户的SQL请求,查询分析、权限处理、优化、效果缓存等。

    • 查询缓存:主要用来缓存所执行的select语句以及该语句的效果集
    • 分析器:词法分析(识别SQL语句关键字,如select、field、table等)、语法分析(主要就是判定SQL是否精确,是否符合Mysql的语法)
    • 优化器:选择最优的执行方案
    • 执行器:按照优化器的方案去执行,执行前校验权限,通过校验后调用引擎接口,返回执行效果

  • 4、存储引擎层

    • 可插拔
    • 存储引擎,就是管理操纵数据(存储数据、更新、查询数据)的方法和机制
    • 一个库中不同的表可以使用不同的存储引擎。
    • 常用的存储引擎有InnoDb和MyISAM,前者支持ACID特性的事故,提供行级锁定,应用广泛,后者查询速度快,但不支持事故,适合读多写少的环境。一样平常使用前者。
    • 其他引擎包括,NDB、MEMORY、BLACKHOLE

  • 5、存储器

    • 用来存储Mysql的数据文件、日志文件等物理文件。

2、存储引擎

存储引擎就是管理数据的方法和机制,存储引擎是基于表的,而不是基于库的,所以存储引擎也被称为表类型。
查看数据库支持的存储引擎

存储引擎由于和物理存储有关,需要在建表的时间声明,且不能后期修改。
  1. show engines;
复制代码
存储引擎对比



  • Innodb:

    • 是一种兼顾高可靠性和高性能的通用存储引擎,在Mysql5.5之后,InnoDb是默认的mysql存储引擎;
    • DML操纵遵循ACID,支持事故;
    • 行级锁,提高并发访问性能;
    • 支持外键约束,保证数据的完整性和准确性

  • MyISAM:

    • 早期mysql默认的存储引擎;
    • 不支持事故
    • 支持表锁,不支持行锁
    • 不支持外键
    • 访问速度快

  • Memory:

    • 内存存放。Memory引擎的表数据是存储在内存中的,由于受到硬件题目或断电题目的影响,只能将这些表作为临时表或缓存使用。
    • hash索引

存储引擎的选择



  • InnoDB
    假如应用对事故的完整性有比较高的要求,在并发条件下要求数据的一致性,且写多的环境下,InnoDb是唯一的选择。
  • MyISAM
    假如读多写少,对查询速度有要求,且对事故完整性、并发性要求不高,那么选择MyISAM比较符合
  • Memory
    通常用作为临时表或者缓存,实际生产上,一样平常用redis代替

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

傲渊山岳

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表