数据库理论数据库的引擎

数据库引擎有两种InnoDB和MyISAM

mysql的InnoDB和MyISAM的表引擎差别是什么?

答:基本区别,InnoDB支持事务处理等高级数据,而MyISAM不支持。

具体区别点:①.InnoDB不支持FULLTEXT类型的索引。

②.InnoDB不保存表的具体行数,也就是说使用select count(*) from tablename时,InnoDB需要遍历表的所有行得出结果,而MyISAM只需要从行数的保存结果中获取就可以得出结果。

③.对AUTO_INCREMENT字段,InnoDB必须只包含该字段的索引,而MyISAM允许该字段与其他字段建立联合索引。

④.InnoDB在delete from tablename时,不会建立新的表,而是逐行删除。

⑤.对于insert,update,select,delete操作,执行大量的select,使用MyISAM对性能比较好,而其余操作,选择InnoDB会比较好。

InnoDB和MyISAM数据库引擎,后者不支持外键

答案:常见的有MyISAM和InnoDB。

      MyISAM:不支持外键约束。不支持事务。对数据大批量导入时,它会边插入数据边建索引,所以为了提高执行效率,应该先禁用索引,在完全导入后再开启索引。

      InnoDB:支持外键约束,支持事务。对索引都是单独处理的,无需引用索引。

      CONSTRAINT symbol:可以给这个外键约束起一个名字,有了名字,以后找到它就很方便了。如果不加此参数的话,系统会自动分配一个名字。

      FOREIGN KEY:将从表中的字段1作为外键的字段。

      REFERENCES:映射到主表的字段2。

      ON DELETE后面的四个参数:代表的是当删除主表的记录时,所做的约定。

           RESTRICT(限制):如果你想删除的那个主表,它的下面有对应从表的记录,此主表将无法删除。

           CASCADE(级联):如果主表的记录删掉,则从表中相关联的记录都将被删掉。

           SET NULL:将外键设置为空。

           NO ACTION:什么都不做。

     注:一般是RESTRICT和CASCADE用的最多

索引

索引是指把你设置为索引的字段A的内容储存在一个独立区间S里,里面只有这个字段的内容。在找查这个与这个字段A的内容时会直接从这个独立区间里查找,而不是去到数据表里查找

而不是去到数据表里查找。找到的这些符合条件的字段后再读取字段A所指向真实的数据记录的物理地址,再把对应的数据内容输出。如果你查找的不是索引的字段那么他会从数据表里面查找。因为数据表有很多不相关的字段,数据库程序是不会省略不查找。要判断那些不相关的字段以及多次在记录中跳转是花费一定的资源的。当然不是设置越多索引就越好。因为索引都放到这个独立区间S,独立区间S越大搜索所占的资源就越大。如果你只有一个字段为索引,那么你搜索这个字段是非常快速的

建立索引的目的是加快对表中记录的查找或排序。为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。

索引的好处在于可以将指定列进行排序,提高检索的速度。

https://www.cnblogs.com/dengyungao/p/8324554.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。