Mysql常见的存储引擎、索引

1、mysql存储引擎

常见的存储引擎:innodb、myisam、memory、merge、archive、csv等

比较常用的有:innodb、myisam

mysql5.5以上版本默认使用的是innodb,5.5以前版本默认使用的是myisam

2、mysql存储引擎innodb和myisam有什么区别

区别性 innodb myisam
事务 支持 不支持
锁粒度 行锁,适合高并发 表锁,不适合高并发
是否默认 默认 不默认
支持外键 支持 不支持
适合场景 读写均衡,写大于读的场景,需要事务 读多写少的场景,不需要事务
全文索引 不支持 支持

3、mysql常见的索引

索引名称 特点
普通索引 最基本的索引,仅加速查询
唯一索引 加速查询,列值唯一,允许为空;组合索引则列值组合必须唯一
主键索引 加速查询,列值唯一,一个表只有1个,不允许为空
组合索引 加速查询,多条件组合查询
覆盖索引 索引包含所查询的值,不需要“回表”查询,比如查询两个字段,刚好是组合索引的两个字段
全文索引 对内容进行分词搜索,仅myisam支持,可以使用solr、es做全文检索

4、使用索引时需要考虑什么?索引的优缺点有哪些?

考虑:根据不同业务场景建立不同的索引,不可能一套索引走天下

优点:快速定位到查询的数据,减少服务器扫描的数据

缺点:

        索引会浪费磁盘空间,非必要不建立索引

        插入、更新、删除都需要维护索引,带来额外开销

        索引过多,修改表的时候重构索引性能差

索引优化:

        内容变动少,且查询频繁,可以建立索引

        内容变动频繁,谨慎创建索引

        根据业务创建适合的索引类型,比如某个字段常用来做查询条件

        组合索引选择业务最相关的字段

你可能感兴趣的:(mysql,数据库,java)