zoukankan      html  css  js  c++  java
  • innodb和myisam对比

    MyISAM特点

    1)不支持行锁(MyISAM只有表锁),读取时对需要读到的所有表加锁,写入时则对表加排他锁;

    2)不支持事务

    3)不支持外键

    4)不支持崩溃后的安全恢复

    5)在表有读取查询的同时,支持往表中插入新纪录

    6)支持BLOB和TEXT的前500个字符索引,支持全文索引

    7)支持延迟更新索引,极大地提升了写入性能

    8)对于不会进行修改的表,支持 压缩表 ,极大地减少了磁盘空间的占用

    InnoDB特点

    1)支持行锁,采用MVCC来支持高并发,有可能死锁

    2)支持事务

    3)支持外键

    4)支持崩溃后的安全恢复

    5)不支持全文索引

    主要区别:

    1)是否支持事务

    2)是否支持行级锁

    3)崩溃后能否安全恢复

    4)count运算上的区别: 因为MyISAM缓存有表meta-data(行数等),因此在做COUNT(*)时对于一个结构很好的查询是不需要消耗多少资源的。而对于InnoDB来说,则没有这种缓存。但如果有where条件,两者都需要执行count(*)查询。

    Mysql的行锁和表锁( 锁是计算机协调多个进程或纯线程并发访问某一资源的机制) 表级锁: 每次操作锁住整张表。开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低; 行级锁: 每次操作锁住一行数据。开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高;

    参见:https://juejin.im/post/5b1685bef265da6e5c3c1c34
  • 相关阅读:
    Swoole addProcess的使用
    《一个人的好天气》读后感
    AIStudio强化学习7日打卡学习体验
    PythonAI百度飞桨aistudio以及PaddlePaddle实践心得
    leetcode.929.UniqueEmailAddresses
    leetcode.852.PeakIndexinaMountainArray
    leetcode.66.PlusOne
    leetcode.657.JudgeRouteCircle
    leetcode.412.FizzBuzz
    图片切碎片脚本 python PIL库实践
  • 原文地址:https://www.cnblogs.com/Jtianlin/p/12051207.html
Copyright © 2011-2022 走看看