关系型数据库优化面试题

关系型数据库优化面试题

那些因素可能会造成数据库性能问题?

  • 高并发

  • 海量数据的高效查询

  • 硬件性能差

  • SQL不合理

  • 需求不合理

  • 表的设计合理

  • 存储引擎不合理

MySQL的执行流程是怎样的?

MySQL的执行主要分为两层即使service层和数据存储层

在service层主要有连接器、分析器、优化器;在数据存储层主要是数据库的存储引擎

具体流程是:连接器验证客户端传递的账户密码,登录到数据库,查询用户的权限信息,然后建立链接,然后执行查询语句,在8.0以前会先从缓存中查询当前SQL的结果是否存在,如果存在直接返回,如果不存在就使用分析器,分析SQL的关键字(字段,查询条件等),在使用优化器优化执行方案,当选择了执行方案之后,就校验是否有权限,权限通过就执行方案,调佣存储引擎的接口,返回执行的结果

优化MySQL你是怎么样的流程?

  • 定位问题,查询慢SQL
    • 方式一:开启慢SQL的日志,配置慢SQL的时间、输出位置
    • 方式二:查询MySQL的基本配置,最大连接数
  • 使用Explain命令分析SQL慢的原因
    • 是否使用索引
  • 优化
    • 选择合适的存储引擎
    • 使用冗余手段
    • 遵循三范式
    • 增量查询

如何定位慢SQL?

  • 使用mysql的命令开启慢sql日志
  • 使用Druid的监控

你如何看SQL有没有命中索引?

使用explain命令

Mysql存储引擎有哪些,有什么区别,如何选择 ?

常见的有三种:InnoDB、MyISAM、Memory

InnoDB:支持事务管理,支持行锁、支持外键

MyISAM:查询和添加速度相对快、支持表锁、支持全文检索

当我们的事务要求不高,同时以查询和添加为主的就考虑使用MySIAM:比如论坛中的发帖,回复

INNODB存储引擎: 对事务要求高,保存的数据都是重要数据,我们建议使用INNODB,比如订单表,账号表.

Memory 存储:比如我们数据变化频繁,不需要入库,同时又频繁的查询和修改,我们考虑使用memory, 速度极快.

如果一张表的数据量很大,我需要统计金额求和,如何优化?

首先考虑是否必须保证是强一致性,使用冗余手段,根据年,日分表,或者单独分一个表来累加数据

什么是索引?

一种提高检索效率的分散数据结构

MySQL索引有 哪些类型?

普通索引:(Normal)允许重复的值出现,可以在任意字段上面添加

主键索引:数据库默认创建,不可以为null

唯一索引:不能使用重复的记录 可以为null

全文索引:对文本于进行索引,只有MyISAM支持,支持英文

MySQL的InnoDB引擎的索引原理?为什么使用B+树?

MySQL的InnoDB的索物理结构是使用两个文件一个表的结构文件.frm 一个是数据索引文件.ibdata;逻辑结构使用的B+树,

使用B+树查询效率稳定,方便排序,和范围查询,树高较低所以IO低

InnoDB的索引结构和MyISAM的索引结构有什么区别?

他们的主键索引有区别:在InnoDB中叶子节点存储的是数据 和MyISAM的叶子节点存储的是磁盘地址

他们的辅助索引的区别:InnoDB中叶子节点存储的是主键索引的key值,而MyISAM的叶子节点存储的是磁盘地址

那些列不适合创建索引?

经常修改的,离散度较小的,不经常查询的

哪些因素会造成索引失效?

使用is null

使用or 连接

字符类型没打引号

like语句左边有通配符

辅助索引的原理

在InnoDB的辅助索引中,他的叶子节点是存的主键索引的key值,所以他需要回表左两次索引查询,

组合索引的匹配规则

使用的是向左匹配原则

数据库面试题大库随着随着互联技术的普及和应用,人类社会已经进入大数据时代,各行各业也都需要大量数据的支持,而根据大数据五V特性之一数据价值密度低,从大量数据爬去出有用的信息就是大难点。基于Python的爬虫技术可以自动完成网络数据的收集、解析、格式化存储,而rabbitmq可以实现分布式爬虫技术,大大提升工作效率。下面主要以时间顺序列出研究rabbitmq爬虫相关技术的发展以及应用。随着互联技术的普及和应用,人类社会已经进入大数据时代,各行各业也都需要大量数据的支持,而根据大数据五V特性之一数据价值密度低,从大量数据爬去出有用的信息就是大难点。基于Python的爬虫技术可以自动完成网络数据的收集、解析、格式化存储,而rabbitmq可以实现分布式爬虫技术,大大提升工作效率。下面主要以时间顺序列出研究rabbitmq爬虫相关技术的发展以及应用。随着互联技术的普及和应用,人类社会已经进入大数据时代,各行各业也都需要大量数据的支持,而根据大数据五V特性之一数据价值密度低,从大量数据爬去出有用的信息就是大难点。基于Python的爬虫技术可以自动完成网络数据的收集、解析、格式化存储,而rabbitmq可以实现分布式爬虫技术,大大提升工作效率。下面主要以时间顺序列出研究rabbitmq爬虫相关技术的发展以及应用。随着互联技术的普及和应用,人类社会已经进入大数据时代,各行各业也都需要大量数据的支持,而根据大数据五V特性之一数据价值密度低,从大量数据爬去出有用的信息就是大难点。基于Python的爬虫技术可以自动完成网络数据的收集、解析、格式化存储,而rabbitmq可以实现分布式爬虫技术,大大提升工作效率。下面主要以时间顺序列出研究rabbitmq爬虫相关技术的发展以及应用。随着互联技术的普及和应用,人类社会已经进入大数据时代,各行各业也都需要大量数据的支持,而根据大数据五V特性之一数据价值密度低,从大量数据爬去出有用的信息就是大难点。基于Python的爬虫技术可以自动完成网络数据的收集、解析、格式化存储,而rabbitmq可以实现分布式爬虫技术,大大提升工作效率。下面主要以时间顺序列出研究rabbitmq爬虫相关技术的发展以及应用。随着互联技术的普及和应用,人类社会已经进入大数据时代,各行各业也都需要大量数据的支持,而根据大数据五V特性之一数据价值密度低,从大量数据爬去出有用的信息就是大难点。基于Python的爬虫技术可以自动完成网络数据的收集、解析、格式化存储,而rabbitmq可以实现分布式爬虫技术,大大提升工作效率。下面主要以时间顺序列出研究rabbitmq爬虫相关技术的发展以及应用。随着互联技术的普及和应用,人类社会已经进入大数据时代,各行各业也都需要大量数据的支持,而根据大数据五V特性之一数据价值密度低,从大量数据爬去出有用的信息就是大难点。基于Python的爬虫技术可以自动完成网络数据的收集、解析、格式化存储,而rabbitmq可以实现分布式爬虫技术,大大提升工作效率。下面主要以时间顺序列出研究rabbitmq爬虫相关技术的发展以及应用。随着互联技术的普及和应用,人类社会已经进入大数据时代,各行各业也都需要大量数据的支持,而根据大数据五V特性之一数据价值密度低,从大量数据爬去出有用的信息就是大难点。基于Python的爬虫技术可以自动完成网络数据的收集、解析、格式化存储,而rabbitmq可以实现分布式爬虫技术,大大提升工作效率。下面主要以时间顺序列出研究rabbitmq爬虫相关技术的发展以及应用。随着互联技术的普及和应用,人类社会已经进入大数据时代,各行各业也都需要大量数据的支持,而根据大数据五V特性之一数据价值密度低,从大量数据爬去出有用的信息就是大难点。基于Python的爬虫技术可以自动完成网络数据的收集、解析、格式化存储,而rabbitmq可以实现分布式爬虫技术,大大提升工作效率。下面主要以时间顺序列出研究rabbitmq爬虫相关技术的发展以及应用。随着互联技术的普及和应用,人类社会已经进入大数据时代,各行各业也都需要大量数据的支持,而根据大数据五V特性之一数据价值密度低,从大量数据爬去出有用的信息就是大难点。基于Python的爬虫技术可以自动完成网络数据的收集、解析、格式化存储,而rabbitmq可以实现分布式爬虫技术,大大提升工作效率。下面主要以时间顺序列出研究rabbitmq爬虫相关技术的发展以及应用。随着互联技术的普及和应用,人类社会已经进入大数据时代,各行各业也都需要大量数据的支持,而根据大数据五V特性之一数据价值密度低,从大量数据爬去出有用的信息就是大难点。基于Python的爬虫技术可以自动完成网络数据的收集、解析、格式化存储,而rabbitmq可以实现分布式爬虫技术,大大提升工作效率。下面主要以时间顺序列出研
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值