主键和索引的区别?
1主键是为了标识数据库记录唯一性,不允许记录重复,且键值不能为空,主键也是一个特殊索引。数据表中只允许有一个主键,但是可以有多个索引
2.索引可以提高查询效率,就相当于字典的目录,可以通过它很快查询到想要的结果,而不需要进行全表扫描。.唯一索引则标识索引值唯一,可以由一个或者几个字段组成,一个表可以有多个唯一索引
唯一索引与主键索引的区别
区别:1、主键创建后一定包含一个唯一性索引,唯一性索引不一定是主键;3、唯一性索引列允许空值, 主键不允许;4、主键可被其他表引为外键,唯一索引不能;5、一个表只能创建一个主键,但可创建多个唯一索引。
第三范式是什么?使用第三范式的好处是什么?
1NF强调字段是最小单元,不可再分
2NF强调在1NF基础上必须要有主键和非主键字段必须完全依赖于主键,也就是说 不能部分依赖
3MF强调在2NF基础上 非主键字段必须直接依赖于主键,也就是说不能传递依赖(间接依赖)。
在数据库设计的时候满足范式要求可以很大限度的合理的处理数据,减少数据的冗余,即多余的用数据,
mysql的存储引擎
mysql b+树、索引、最左匹配原则
**MySQL的事务特性?**答:ACID,原子性,隔离性,持久性,一致性
**隔离级别?**答:未提交读,已提交读,可重复读,可串行化。顺便说了InnoDB对可重复读下幻读的解决方案。next-key lock锁可以避免幻读
**有哪些数据结构可以作为索引呢?**答:B+树。追问还有吗?答:也了解过hash索引,全文索引,位图索引
聚簇索引和非聚簇索引的区别?
**MySQL还有哪些存储引擎?**答:InnoDB、MyIsam
InnoDB和MyIsam的区别?bulabulabula
**MyIsam适用于什么场景?**答:全文索引,空间数据。追问:还有吗?答:不知道。。。
**sql慢查询的解决方案?**答:建索引,用expalin,复杂查询转换为小查询…
InnoDB为什么使用B+树作为存储引擎
什么是索引,有哪些索引,索引的缺点?
B树和B+树有什么优缺点?
事务的特性(ACID)?
事务的隔离级别?什么是幻读?
MySQL默认的执行引擎是什么?它的默认隔离级别是什么?那可以避免幻读么?(我说不可以,面试官说那我就没法往下问了。我估计他是想问我MySQL 的MVCC和日志实现事务的隔离级别)
17.MySQL的了解,两个引擎区别
18.索引实效的情况
3.Mysql的事务实现原理?隔离级别?锁有哪些?聚簇索引?group by实现原理?b+树和b树?脏读幻读不可重复读?MVCC实现原理?
数据库引擎结构、区别
索引底层结构,插入数据索引结构的变化等
索引的优化方法,以及为什么(就是优化底层是怎么实现)
索引使用(优化器如何界定)
数据库几种日志,以及如何刷新,区别
数据库三个线程用处
数据库事务详细(不是指ACID几个性质,就是事务到底是基于什么实现的
1、数据库隔离级别、底层原理、每个级别如何解决上个级别的问题?
2、mysql 间隙锁实现方式
索引在哪些情况下会失效
(1)对列进行计算或者是使用函数,则该列的索引会失效
(2)不匹配数据类型,会造成索引失效
(3)where语句中使用了IS NULL或者IS NOT NULL,会造成索引失效
(4)使用了反向操作,该索引将不起作用
(5)使用了link操作,索引就将不起作用
(6)在WHERE中使用OR时,有一个列没有索引,那么其它列的索引将不起作