面试题
数据库查询很慢,有什么优化方法?
1.查询时,尽量不要使用select *
2.最有效的手段是在频繁使用、需要排序的字段上建立索引,考虑在 where 及 order by 涉及的列上建立索引。
3.查询时,尽量满足最左前缀法则。
4.like 模糊查询时 百分号放在后面可以走索引
5.order by 使用的字段放在最后可以使用到索引
数据库有哪些存储引擎?以及他们的区别?
MySQL有两种存储引擎,分别是InnoDB和MyISAM
他们的区别是:
1.MyISAM不支持事务,InnoDB引擎提供了对数据库ACID事务的支持
2.MyISAM不支持外键,InnoDB支持外键
3.存储结构 MyISAM存储引擎数据和索引是分开存储的,数据存放在myd文件中,索引放在myi文件中,InnoDB数据和索引是集中存储的
4.Myisam只支持表锁,InnoDB支持行锁和表锁
怎么看有没有使用到索引?
使用explain命令来查看语句的执行计划,其中有包含很多信息,包括possibe_key、key、key_len等分别说明了可能会使用的索引、实际使用的索引以及使用的索引的长度。
innoDB的索引怎么实现的?
聚簇索引和非聚簇索引的区别 ?
聚簇索引主要是InnoDB中使用的是聚簇索引,叶子节点将数据和索引放到了一块,找到了索引就找到了数据
非聚簇索引主要是MyISAM中使用,是将数据和索引分开结构,索引中有指向对应数据块的指针。