• mysql 存储引擎MYSIAM和INNODB特性比较


    事物:MYISAM不支持事物,MyISAM类型的表强调的是性能,其执行数度比InnoDB

    类型更快。如果不考虑事物,大量的select和insert适合MYISAM表

    锁:MYISAM支持表锁
        INNODB提供行级锁,提供与 Oracle 类型一致的不加锁读取(non-locking read in),
       INNODB行锁也不是绝对的,在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”

    多版本高并发:多版本高并发即MVCC,INNODB才有MVCC支持高并发,实现四个标
    准隔离级别,默认是可重复读,通过间隙锁防止幻读。间隙锁使得INNODB不仅仅
    锁定涉及查询的行,还对索引中间隙进行锁定,防止幻行写入。

    事务修复和崩溃修复:MYISAM可以手工或者自动的检查和修复操作,但不是崩溃
    恢复。INNODB一定程度上支持崩溃时数据的丢失恢复,但不是绝对的恢复,且恢复时间长

    备份:如果需要关闭服务器执行备份,备份策略可以忽略。但是需要在线热备份,INNODB是更好的选择


    转换引擎上,有三种方式
    1:alert table语句:  alert table mytable ENGINE=InnoDB;
    此方法效率最低,需要把数据复制到一张新表,系统IO能力可能被耗尽,同时在原表加锁,需要避开表使用高峰期,同时会造成原引擎特性丢失,索引,外键等

    2:导入导出
    通过mysqldump工具可以导出到文件。但是会默认在在create table加drop table语句,不注意会造成数据丢失

    2:创建查询
    先创建一个新储存引擎的表,通过insert ---select导入,这种方式在数据量级别低的情况下是不错的选择,如果数据量过大,可以通过分批处理。完成后,新表是对旧表的复制,但旧表还存在。也可以在负责过程中对原表加锁,确保与原表数据一致。

  • 相关阅读:
    jQuery中排除指定元素,同时选择剩下的所有元素
    Silverlight Telerik控件学习:弹出窗口RadWindow
    biztalk 2010 dev版安装小记
    Flex4中的ModuleLoader,Alert以及TitleWindow
    Silverlight Telerik控件学习:主题Theme切换
    用Flex模拟智能手机表单输入的自动放大功能
    "为帮助内容存储区指定的位置无效或者您无权访问该位置"解决方法
    Flex4中使用WCF
    Silverlight单元测试
    Silverlight:纠结的快捷键问题
  • 原文地址:https://www.cnblogs.com/supertang/p/4117959.html
Copyright © 2020-2023  润新知