码迷,mamicode.com
首页 > 数据库 > 详细

mysql的存储引擎

时间:2018-02-26 18:59:18      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:mysql   innodb   

  • 什么是存储引擎?

  •          比如:一个视频可以是mp4格式或者avi格式,但是用户看起来都是差不多的,直观差别就是占用系统的空间与清晰程度不一样。存储引擎差不多,对于mysql来说,无论采用的是什么引擎来存储,用户看到的数据都市一样的,不同的引擎存取,引擎功能,占用的空间大小,读取性能可能有区别。


    mysql最常用的存储引擎为MyISAM和InnoDB 。


    MyISAM:在mysql5.5以前是默认的存储引擎,在5.5以后修改为innodb,因为InnoDB引擎由于对事务参照完整性,以及高并发等优点。 


    事务:(不仅是针对mysql,所有的关系性数据库都有事务特性)

           事务就是指逻辑上的一组sql语句操作,组成这组操作的各个sql语句,执行时要么全成功要么全失败。

    事务的四大特性(ACID)

    原子性(Atomicity):事务时一个不可分割的单位,事务中的所有sql等操作要么都发生,要么都不发生

    一致性(Consistency):事务发生前和发生后,数据的完整性必须保持一直

    隔离性(Isolation):当并发访问数据库时,一个正在执行的事务在执行完毕前,对于其他的会话时不可见的,多个并发事务之间的数据是相互隔离的

    持久性(Durability):一个事务一旦被提交,它对数据库中的数据改变是永久性的,如果出了错误不允许撤销,只能通过“补偿性事务”


    事务的开启

           start transcation  开启事务

           rollback  回滚事务,如果执行错误就执行回滚

           commit   提交事务  退出事务


    Innodb引擎

          最大的特性就是事务。

    Innodb共享表空间,默认只有一个文件,在这个文件中在进行分类,也可以拆开,一个表一个为念

    -rw-rw---- 1 mysql mysql 12582912 2月  22 20:37 ibdata1


    InnoDB引擎 特点

         1.支持事务

         2.行级锁定(更新是一般是锁定当前行):通过索引实现,全表扫描仍然会是表锁,注意间隙锁的影响

         3.读写阻塞与事务隔离相关

         4.具有非常高效的缓存特性,能缓存索引,也能缓存数据

         5.整个表和主键以cluster方式存储,组成一颗平衡树

         6.所有Secondary Index都会保存主键信息

          *7.支持分区,表空间,类似oracle

    小结:支持事务,支持行级锁,支持外键,表空间,对硬件要求比较高


    innodb引擎调优精要

    1. 主键尽可能小,避免给Secondary index带来过大的空间负担

    2. 避免全表扫面,因为会使用表锁

    3. 尽可能缓存所有的索引和数据,提高响应速度,减少磁盘IO

    4. 在大批量小插入的时候,尽量自己控制事务而不要使用自动提交,有开关可以控制提交方式

    5. 合理设置innodb_flush_log_at_trx_commit的值为0,log buffer美妙就会被刷写日志文件到磁盘,提交事务的时候不要做任何操作

    6. 避免主键更新,因为这会带来大量的数据移动。


    关于innodb在配置文件中的部分参数:关于更多的优化参考

    innodb_additional_mem_pool_size 
    用来存放Innodb的内部目录,这个值不用分配太大,系统可以自动调。通常设置16M够用了,如果表比较多,可以适当的增大。
    设置方法,在my.cnf文件里:
    innodb_additional_mem_pool_size = 16M

    1)内存利用方面
    innodb_buffer_pool_size 
    这个是Innodb最重要的参数,和MyISAM的key_buffer_size有相似之处,但也是有差别的。 
    这个参数主要缓存innodb表的索引,数据,插入数据时的缓冲。


    mysql的存储引擎

    标签:mysql   innodb   

    原文地址:http://blog.51cto.com/11726212/2073223

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!