• MySQL(一)之存储引擎类型


    InnoDB:

    1. 经常更新的表,适合处理多重并发的更新请求。
    2. 支持事务。
    3. 可以从灾难中恢复(通过bin-log日志等)。
    4. 外键约束。只有他支持外键。
    5. 支持自动增加列属性auto_increment。
    6. 索引结构为B+Tree
    7. 每个表有两个文件 .frm(表结构),ibd(数据索引文件)

    InnoDB索引实现(聚集)

    表数据文件本身就是 按B+Tree组织的一个索引结构文件

    聚集索引——叶子节点包含了完整的数据记录

    为什么InnoDB表必须有主键,并且推荐使用整形的自增主键?

      答案 

    为什么非主键索引结构叶子节点存储的是主键值(一致性和节省存储空间)

     指针是双向的, 所以也适用于 where id<18,或者 where id>18

    MyISAM:

    1. 不支持事务的设计,但是并不代表着有事务操作的项目不能用MyIsam存储引擎,可以在service层进行根据自己的业务需求进行相应的控制。
    2. 不支持外键的表设计。
    3. 查询速度很快,如果数据库insert和update的操作比较多的话比较适用。
    4. 整天 对表进行加锁的场景。
    5. MyISAM极度强调快速读取操作。
    6. MyIASM中存储了表的行数,于是SELECT COUNT(*) FROM TABLE时只需要直接读取已经保存好的值而不需要进行全表扫描。如果表的读操作远远多于写操作且不需要数据库事务的支持,那么MyIASM也是很好的选择。
    7. 索引文件和数据文件是分离的, 每一个表三个文件.frm(表数据结构), .MYD(数据文件), .MYI(索引文件)

      

    Memory存储引擎


     Memory存储引擎采用逻辑介质是内存,因此其访问速度会非常快,其默认使用的是hash索引,一旦服务关掉,数据就会丢失。Memory存储引擎要求存储的数据是长度不变的格式,比如blob和text类型都不可以

    适合的场景:

    1、适合保存目标数据比较小,并且频繁进行访问的,如果太大的话,容易造成内存溢出,通过max_heap_table_size来设定表的大小;

    2、存储在Memory引擎的表中的数据,如果丢失也没有关系的

    3、如果数据是临时的,必须立刻用的到,那么可以存在内存当中。   Memory存储引擎支持hash索引和B树索引,hash索引用来比较相等会比较快,范围查找会比较慢,B树索引可以部分查询和通配查询,也可以使用<,>,= 等方便数据挖掘。  Memory存储引擎创建的表,最好是使用完之后,就删除。 

  • 相关阅读:
    jenkins+maven+svn的自动化部署
    python+selenium遇到鼠标悬停不成功可以使用js进行操作
    robot framework环境搭建
    selenium+python定位元素方法
    selenium+python元素操作
    selenium+python等待时间
    selenium+python浏览器窗口的切换
    jmeter学习(七)连接mysql 数据库
    jmeter学习(六)集合点和关联
    jmeter学习(五)参数化
  • 原文地址:https://www.cnblogs.com/fanBlog/p/9754829.html
Copyright © 2020-2023  润新知