没有合适的资源?快使用搜索试试~ 我知道了~
常见(MySQL)面试题(含答案).docx
需积分: 0 0 下载量 117 浏览量
2023-05-29
22:03:57
上传
评论
收藏 26KB DOCX 举报
温馨提示
试读
30页
MyisAM和innodb的有关索引的疑问 innodb为什么要用自增id作为主键 MySql索引是如何实现的 说说分库与分表设计(面试过) 聚集索引与非聚集索引的区别 事务四大特性(ACID)原子性、一致性、隔离性、持久性? 事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别? MySQL常见的存储引擎InnoDB、MyISAM的区别?【~】 数据库三范式,根据某个场景设计数据表?优缺点 MySQL 索引使用的注意事项 SQL怎么优化 数据库悲观锁和乐观锁的原理和应用场景? 如何做 MySQL 的性能优化? 索引是什么?MySQL为什么使用B+树,而不是使用其他?B+树的特点 创建索引时需要注意什么? CHAR和VARCHAR的区别? NOW()和CURRENT_DATE()有什么区别? 各种索引的概念:索引,主键,唯一索引,联合索引,索引分类 建立索引的使用场景 Myql中的事务回滚机制,持久性,隔离级别的实现 说一说drop、delete与truncate的区别 什么叫视图?游标是什么? 什么是存储过程?用什么来调用? 内连接、自连接、外连接(左、右、全)
资源推荐
资源详情
资源评论
常见(MySQL)面试题(含答案)
本文的面试题如下:
MyisAM 和 innodb 的有关索引的疑问
innodb 为什么要用自增 id 作为主键
MySql 索引是如何实现的
说说分库与分表设计(面试过)
聚集索引与非聚集索引的区别
事务四大特性(ACID)原子性、一致性、隔离性、持久性?
事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL 默
认是哪个级别?
MySQL 常见的存储引擎 InnoDB、MyISAM 的区别?【~】
数据库三范式,根据某个场景设计数据表?优缺点
MySQL 索引使用的注意事项
SQL 怎么优化
数据库悲观锁和乐观锁的原理和应用场景?
如何做 MySQL 的性能优化?
索引是什么?MySQL 为什么使用 B+树,而不是使用其他?B+树的特
点
创建索引时需要注意什么?
CHAR 和 VARCHAR 的区别?
NOW()和 CURRENT_DATE()有什么区别?
各种索引的概念:索引,主键,唯一索引,联合索引,索引分类
建立索引的使用场景
Myql 中的事务回滚机制,持久性,隔离级别的实现
说一说 drop、delete 与 truncate 的区别
什么叫视图?游标是什么?
什么是存储过程?用什么来调用?
内连接、自连接、外连接(左、右、全)、交叉连接的区别
MyisAM 和 innodb 的有关索引的疑问
两者都是什么索引?聚集还是非聚集
MyISAM( 非聚集)
使用 B+Tree 作为索引结构,叶节点的 data 域存放的是数据记录的地
址。MyISAM 中索引检索的算法为首先按照 B+Tree 搜索算法搜索索
引,如果指定的 Key 存在,则取出其 data 域的值,然后以 data 域的
值为地址,读取相应数据记录。
InnoDB( 聚集索引)
第一个重大区别是 InnoDB 的数据文件本身就是索引文件, 这棵树
的叶节点 data 域保存了完整的数据记录。
但是辅助索引搜索需要检索两遍索引:首先检索辅助索引获得主键,
然后用主键到主索引中检索获得记录。
因为 InnoDB 的数据文件本身要按主键聚集,所以 InnoDB 要求表必
须有主键(MyISAM 可以没有)
如果没有显式指定,则 MySQL 系统会自动选择一个可以唯一标识数
据记录的列作为主键
如果不存在这种列,则 MySQL 自动为 InnoDB 表生成一个隐含字段作
为主键,这个字段长度为 6 个字节,类型为长整形。(隐含字段)
简单说:
如果我们定义了主键(PRIMARY KEY),那么 InnoDB 会选择其作为聚集
索引;如果没有显式定义主键,则 InnoDB 会选择第一个不包含有
NULL 值的唯一索引作为主键索引;
innodb 不需要 myi 文件
innodb 为什么要用自增 id 作为主键:
如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到
当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页
如果使用非自增主键(如果身份证号或学号等),由于每次插入主键
的值近似于随机,因此每次新纪录都要被插到现有索引页得中间某个
位置, 频繁的移动、分页操作造成了大量的碎片,得到了不够紧凑
的索引结构,后续不得不通过 OPTIMIZE TABLE(optimize table)来
重建表并优化填充页面。
说说分库与分表设计(面试过)分片
分库与分表的目的在于,减小数据库的单库单表负担,提高查询性能,
缩短查询时间。
通过分表,可以减少数据库的单表负担,将压力分散到不同的表上,
同时因为不同的表上的数据量少了,起到提高查询性能,缩短查询时
间的作用,此外,可以很大的缓解表锁的问题。
分表策略可以归纳为垂直拆分和水平拆分。
水平分表: 取模分表就属于随机分表,而时间维度分表则属于连续
分表。
如何设计好垂直拆分,我的建议:将不常用的字段单独拆分到另外一
张扩展表. 将大文本的字段单独拆分到另外一张扩展表, 将不经常修
改的字段放在同一张表中,将经常改变的字段放在另一张表中。
对于海量用户场景,可以考虑取模分表,数据相对比较均匀,不容易
出现热点和并发访问的瓶颈。
库内分表: 仅仅是解决了单表数据过大的问题,但并没有把单表的
数据分散到不同的物理机上,因此并不能减轻 MySQL 服务器的压力,
仍然存在同一个物理机上的资源竞争和瓶颈,包括 CPU、内存、磁
盘 IO、网络带宽等。
分库与分表带来的分布式困境与应对之策
数据迁移与扩容问题----一般做法是通过程序先读出数据,然后按照
指定的分表策略再将数据写入到各个分表中。
分页与排序问题----需要在不同的分表中将数据进行排序并返回,并
将不同分表返回的结果集进行汇总和再次排序,最后再返回给用户。
分布式全局唯一 ID—UUID、GUID 等
聚集索引与非聚集索引的区别
非聚集索引和聚集索引的区别在于, 通过聚集索引可以查到需要查
剩余29页未读,继续阅读
资源评论
小小菜鸡叶不凡
- 粉丝: 131
- 资源: 180
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 学生成绩管理系统-C++版本
- 吉林大学离散数学2笔记.pdf
- 通道处理过程的模拟通常涉及对通道处理机制的理解与实现.txt
- Flume进阶-自定义拦截器jar包
- Dubins曲线算法讲解和在运动规划中的使用.pdf
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.dta
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.xlsx
- Reeds+Shepp曲线算法讲解和实现.pdf
- 毕业设计基于SpringBoot+MyBatisPlus+MySQL+Vue的外卖配送信息系统源代码+数据库
- 词向量(Word Embeddings)是自然语言处理(NLP)领域的一种重要技术.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功