MySQL面试(二)
1、为什么索引遵循最左匹配原则?
当B+树的数据项是符合的数据结构,比如(name,age,sex)的时候,B+树是按照从左到右的顺序建立搜索树的。比如当(张三,20,F)这样的数据来检索的时候,b+树会优先比较name来确定下一步的所搜方向,如果name相同再依次比较age和sex,最后得到检索的数据;但当(20,F)这样的没有name的数据来的时候,B+树就不知道下一步该查哪个节点,因为建立搜索树的时候name就是第一个比较因子,必须要先根据name来搜索才能知道下一步去哪里 查询。比如当(张三,F)这样的数据来检索时,B+树可以用name来指定搜索方向,但下一个字段age的缺失,所以 只能把名字等于张三的数据都找到,然后再匹配性别是F的数据了, 这个是非常重要的性质,即索引的最左匹配 特性。
2、主键索引 唯一索引 普通索引的区别?
主键是一种约束,索引是一种特殊的文件
,两者在本质上是不同的。
索引
是一种特殊的文件
,它们包含着对所有记录的引用指针
。索引可以极大地提高数据查询速度(好比一本书的目录)
,但是会降低插入删除更新表的速度
,因为在执行这些操作是,还要操作索引文件用来维护
,所以说索引不是建的越多越好而是要建在合理的字段。
索引的遵循原则
:
1、最左侧原则
,表的最左侧的一列,往往数据不会发生改变,不影响其他列的数据;
2、命名短小原则
,索引命名过长会使索引文件变大
,损耗内存
。
普通索引
:(由关键字KEY或INDEX定义的索引)的唯一任务是
加快对数据的访问速度。普通索引允许被索引的数据列包含重复的值
。如果能确定某个数据列将只包含彼此各不相同的值
,在为这个数据列常创建索引时应该用就用关键字UNIQUE
把他定义成一个唯一索引
。也就是说,唯一索引可以保证数据记录的唯一性
。
唯一索引
:不允许两行具有相同的索引值。
主键
:是一种特殊的唯一索引,一张表中只能定义一个主键索引
,通常有一列或列组合
,用于唯一标识一条记录
,使用关键字PRIMARY KEY
来创建。为表定义一个主键
将自动创建主键索引(聚簇索引)
。当在查询中使用主键索引时,它还允许快速访问数据
。
联合索引
:可以覆盖多个数据列
,像INDEX(columnA, columnB)
索引,这就是联合索引。
主键索引和唯一索引的区别:
(1) 对于主键
/unique constraint , oracle/sql server/mysql等都会自动建立唯一索引
;
(2) 主键不一定只包含一个字段
,所以在主键的其中一个字段
建唯一索引
还是有必要的;
(3) 主键可作外键
,唯一索引不可;
(4) 主键不可为空
,唯一索引可;
(5) 主键可是多个字段的组合
;
(6) 主键与唯一索引不同的是:
a.有not null
属性;
b.每个表只能有一个
。
(7) 主键索引一定是唯一索引, 唯一索引不是主键索引
(8) 主键可以与外键 构成 参照完整性约束
, 防止数据不一致
最新文章
- Hadoop4 利用VMware搭建自己的hadoop集群
- 关于SQL Server镜像的一个小误区
- Python招聘需求与技能体系
- IPv6正则表达式
- Expectation maximization - EM算法学习总结
- STM32 UART 重映射
- MySQL索引背后的数据结构及最左原则
- 通过spring实现javamail发送邮件功能
- (转载)Oracle10g 数据泵导出命令 expdp 使用总结(三)
- Python全栈开发之---mysql数据库
- OneHot编码
- Mysql必知必会 第三章 使用Mysql
- IIS配置支持跨域请求
- 第二节:Web前端-ASP.NET之C#基础
- UVa 11627 - Slalom 二分. oj错误题目 难度: 0
- Qt应用程序单实例化
- SAP SQ01怎样从开发机传输到生产机
- 关于Cocos2d-x数据类型的使用
- JS实现一位数显示为两位
- 请教前辈:关于JS的一个奇怪的错误,不知是解析顺序造成的,还是什么原因。。
热门文章
- 【转载】【技巧总结】PyCharm怎么克隆github上开源的项目
- 【JZOJ4894】【NOIP2016提高A组集训第16场11.15】SJR的直线
- Leetcode796.Rotate String旋转字符串
- linux CentOs 7.4 64位 系统下 nuxt部署 、nginx 安装、node环境及软连接,pm2软连接
- Android实战:手把手实现“捧腹网”APP(二)-----捧腹APP原型设计、实现框架选取
- Docker初步了解 2016-10-30 20:46 279人阅读 评论(31) 收藏
- oracle获取中文出现乱码问题解决
- CF986F Oppa Funcan Style Remastered
- uni-app获取dom元素到顶部的距离以及操作dom元素的一些样式
- @NOI模拟2017.07.02 - T1@ Attack