数据库的引擎介绍

  1. MyISAM搜索引擎(5.5之前默认的数据库引擎)
    多线程的环境下,对于数据来说是不安全的,所以这时候就要考虑到安全问题,MyISAM还使用一种表格锁定的机制,来优化多个并发环境下读写的问题。例如,多个用户同时访问一个数据库的时候,想要查询某一条数据这时候MyISAM提供一种 共享锁的机制,就是多个用户可以同时查一条数据,如果这时候某一个用户要对这一条数据进行修改,会将这一行数据加上排他锁,排他锁意味着在更新这条数据之前,只能有这个用户操作,其他用户不能够查询,当这一行数据更新完成之后排他 锁就会进行释放,回到原来用户都可以对这条数据查询的权限。
    注意:使用MyISAM的时候,需要注意使用Optimize Table命令清理空间,必须实时备份所有的实时数据。
    如果使用该引擎的话,会生成三个文件:
    ------------ .frm 表结构信息
    ------------ .MYD 数据文件
    ------------ .MYI 表的索引信息
    使用该引擎最大的好处就是优化查询

  2. InnoDB搜索引擎(5.5之后默认的数据库引擎)
    InnoDB比起ISAM和MyISAM的两种数据库引擎来说,更多的支持了事务操作和外键的操作**(外键不能够跨引擎)**

  3. MyISAM与InnoDB的区别
    1)InnoDB 支持事务,MyISAM不支持事务,InnoDB会把每个sql语句自动封装成事务。
    2)InnoDB 支持外键,MyISAM不支持外键,外键不能够跨引擎操作。
    3)InnoDB 是聚集索引,数据文件和索引绑在一起的,必须要有主键,通过主键效率查询更高。
    4)InnoDB 不会保存表的具体行数,我们则需要通过 select count(*) from tablename 来进行全表扫描,全面扫描是相当耗
    费时间的;而MyISAM使用了一个变量保存了这个行数。
    5)InnoDB 不支持全文本搜索,MyISAM则支持全文本搜索,查询效率上MyISAM较高。

  4. 究竟该如何选择使用哪种搜索引擎呢?
    1)是否要支持事务,如果要请使用InnoDB,不需要则可以考虑MyISAM。
    2)如果在表中大多数只是读查询,那么可以使用MyISAM,如果既有读写也很频繁,那么可以使用InnoDB。
    3)系统崩溃后,MyISAM恢复起来比较麻烦,是否可以接受这种灾难。
    4)MySQL5.5版本之后,就开始支持了InnoDB引擎(之前是MyISAM),说明其优势是有目共睹的,如果实在不知道选择什么,那
    么就是用InnoDB,至少是不会错的。

    自己看视频讲解之后进行总结,希望这篇文章在数据库方面能够帮助到大家。

你可能感兴趣的:(数据库知识)