mysql数据库常见面试题
- 慢查询排查优化
- 排查
slow_query_log设置为on,就会记录慢查询sql;long_query_time可以设置慢查询sql的阈值时间;slow_query_log_file表示记录慢查询sql的日志路径。即我们可以通过打开记录慢查询的开关,设置慢查询的时间阈值,查看日志就能看到慢查询的执行sql。然后使用explain查看sql的执行计划,主要看type字段判断是否走索引了。 - 优化
- 子查询优化,使用join代替in,子查询的话mysql会建立临时表,再把临时表销毁,效率会很低
- 字段优化,尽量使用整形,不要设置太长,避免between、like、<、>范围查询导致的全表查询
- 经常使用的字段创建索引
- 事先准备好报表,避免查询时计算数据导致的性能下降
- 分库分表
- 历史数据迁移
- 使用redis缓存数据,减少查询次数
- 排查
- 聚集索引和非聚集索引
- 聚集索引
聚集索引指的就是主键索引,索引和数据是存放在一起的,故名聚集。mysql的数据在磁盘上是以页的形式进行存储的,每页中的数据按主键的值从小到大进行排列,因此可以通过目录页对数据查询进行维护,每个目录都记录了数据的页数以及该页的最小键值。在查询时根据先可以目录项定位要查询的数据所在的页数,再到数据页中按主键值通过二分法进行查询。 - 非聚集索引
非聚集索引的数据结构与聚集索引类似,不过在数据项中存储的是主键,查询的时候先通过非聚集索引查询得到主键,再通过主键回表查询具体的数据。 - 区别
主键索引叶子节点存储的是具体的数据,而非聚集索引叶子节点存储的主键。聚集索引每张表只能有一个,非聚集索引每张表可以有多个。聚集索引在内存上是线性的,而非聚集索引在内存上不是线性的,逻辑上是线性的。
- 聚集索引
- limit查询变慢的原因
limit语句会先扫描offset+n行,然后再丢弃掉前offset行,返回后n行数据。当limit后面跟的值比较大,mysql查询时扫描的行数变多,导致查询的时间变长。因此limit的第一个参数不要设置的太大,可以通过主键id找到要查询的位置再进行limit。 - mysql事务隔离级别
读未提交;读已提交;可重复读;序列化。可重复读底层是通过mvcc实现的。 - mysql的char和varchar的区别
- varchar 类型的长度是可变的,而 char 类型的长度是固定的
- char 长度最大为 255 个字符,varchar 长度最大为 65535 个字符
- varchar 类型的查找效率比较低,而 char 类型的查找效率比较高
- DATETIME 和 TIMESTAMP 的区别
- DATETIME比TIMESTAMP的范围要广
- TIMESTAMP占4个字节,DATETIME占用8个字节
- TIMESTAMP会时间在当前时间和UTC之间进行转化,DATETIME直接保存和返回
- 什么情况下会创建索引
- 字段的值是唯一
- 表的数据量比较大并且频繁作为where的查询条件
- 索引失效的情况
- 不遵循最左前缀原则
- 索引上有通配符
- 索引的类型和匹配类型不一致
- 索引上存在内置函数
- or连接了非索引字段
- 范围查询时数据量过大
- 索引优化
- 避免回表
- 索引最好设置为not null
- explain调试sql
相关文章:
mysql数据库常见面试题
慢查询排查优化 排查 slow_query_log设置为on,就会记录慢查询sql;long_query_time可以设置慢查询sql的阈值时间;slow_query_log_file表示记录慢查询sql的日志路径。即我们可以通过打开记录慢查询的开关,设置慢查询的时间阈值&…...
【Android源码面试宝典】MMKV从使用到原理分析(一)
去年,我们写过一篇文章,对于android原生提供的key-value存储API SharePreference,进行了从使用到原理的深入分析,同时对其中存在的ANR问题、存取慢等问题,进行了深入的探索、总结。但是之前的文章,我们仅仅指出了问题,没有给大家提供解决方案,也就是说,SharePreferenc…...
你真的懂动态库吗?一文详解动态库的方方面
这里写目录标题创建动态库创建静态库动态库与静态库的区别动态链接与静态链接的区别动态库的加载过程dll的创建以及应用程序隐式链接到dll的过程dll的创建以及应用程序显示链接到dll的过程动态库的二进制兼容性创建动态库 1.【新建】-》【项目】-》【动态链接库】 新建的动态…...
I.MX6ULL内核开发12:使用设备树插件实现RGB灯驱动
目录 一、引言 二、设备树插件格式 三、实验说明 四、实验准备 4.1 通过内核工具编译设备树插件 五、实验效果 5.1 uboot加载 5.2 加载RGB驱动 一、引言 Linux4.4以后引入了动态设备树(Dynamic DevicesTree),这里翻译位“设备树插件…...
大家一起来找茬,新手第一次layout到底能挑出多少毛病?
有一个新手工程师在论坛上发了一篇帖子,把自己的处女PCB布线图贴出来。 如果不看其他网友的评论,你能看出多少问题呢?可以在留言区和我们互动哦~ 帖子里他还提出了自己的小见解:问一下,我觉得自动布线挺好用的啊&#…...
Java集合概述(Collection集合)
目录集合一、集合与数组二、集合类体系结构三、泛型(约定集合存储数据类型)四、Collection集合常用API五、Collection集合的遍历方式5.1 迭代器遍历5.2 增强for循环(for each):5.3 lambda表达式六、Collection集合存储自定义类型的对象七、常见数据结构集合 一、集合与数组 数…...
运动无线蓝牙耳机哪款好、运动无线蓝牙耳机推荐
作为 运动爱好者,每天早晨醒来后的第一件事就去家门口的湿地公园跑上一圈。各种运动装备都齐了,不过在耳机选择上还真的犯难,打着“运动耳机”旗号的产品也是种类繁多,那么到底什么样的无线耳机更适合运动呢?于是我花时…...
解决AAC音频编码时间戳的计算问题
1.主题音频是流式数据,并不像视频一样有P帧和B帧的概念。就像砌墙一样,咔咔往上摞就行了。一般来说,AAC编码中生成文件这一步,如果使用的是OutputStream流写入文件的话,就完全不需要计算时间。但在音视频同步或者使用A…...
Android 9.0 添加自定义开机广播
1.概述 在9.0的系统rom定制化开发中,由于系统开机广播接收受限,普通app接收不到这个广播,如果接收这个广播很多应用 感觉要好久收到这个广播, 所以需要自定义开机广播来使用自定义广播开启某些应用,实现自己的功能,接下来就需要分析下开机广播的流程,然后增加自定义广播…...
第四阶段10-添加类别,类别列表mapper层,service层,controller层
63. 添加类别–Mapper层 插入类别数据的功能此前已经完成! 64. 添加类别–Service层 在项目的根包下创建pojo.dto.CategoryAddNewDTO类: Data public class CategoryAddNewDTO implements Serializable {/*** 类别名称*/private String name;/*** 父…...
linux内核启动分析(一)
文章目录1.HEAD1.preserve_boot_args1.1 __inval_dcache_area2.el2_setup3. set_cpu_boot_mode_flag4. __create_page_tables4.1map_memory5. __cpu_setup6. __primary_switch6.1 __enable_mmu6.2 __primary_switched最近工作中经常使用飞腾E2000的开发版,也遇到一些…...
wireshark常见使用操作讲解以及几个故障解决案例分享
(1)网卡选择 对于电脑本身有多个网卡的时候,选择网卡就成为了一个困惑的地方,其实这里很简单,只要把鼠标放在对应的网卡上面就可以看到地址等信息,就容易判断出来了。 (2)过滤器 直…...
利用逻辑分析仪解析串口通讯数据
利用逻辑分析仪解析串口通讯数据🔧采用的是市面上最为广泛使用的USB逻辑分析仪: 📚资料下载: 链接: https://pan.baidu.com/s/1c9lwWDbtJxaJED-kzSbiJg 提取码: 5vnr🔨测试工具为:Logic 2.4.6,也可以使用Pu…...
新整理的前端面试题
pinia和vuex的区别(1)pinia它没有mutation,他只有state,getters,action【同步、异步】使用他来修改state数据(2)pinia他默认也是存入内存中,如果需要使用本地存储,在配置上比vuex麻烦…...
数据仓库-数仓分层
层级 全拼 职责划分 ODS(源数据层) Operational DataStore ODS层存储最原始的数据, 对数据不做任何加工处理; 源数据主要来自业务数据库和日志,这些数据是用户操作业务系统产生,所以叫操作型数据(Operational Data) 。 DWD(…...
【Linux】Linux根文件系统扩容
场景:根文件系统需要至少100GB的剩余空间,但是目前就剩余91GB。因此,我们需要对根文件系统进行扩容。# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 3.9G 0 3.9G 0% /dev tmpfs …...
RPC编程:Hessian RPC一个老的RPC框架(一)
RPC编程:Hessian RPC一个老的RPC框架一:Hessian RPC1:Hession RPC一个老的RPC框架2:老,为什么还要研究?3:Hession RPC概念二:Hessian RPC设计思想1:Hession依赖于服务器2…...
逆向 x蜂窝 zzzghostsigh
逆向 x蜂窝 zzzghostsigh 版本 9.3.7 新版本是64位的so charles 抓包 目标字段 zzzghostsigh frida java function hook_xPreAuthencode() {Java.perform(function() {var helper Java.use("com.mfw.tnative.AuthorizeHelper");helper.xPreAuthencode.implemen…...
QML 鼠标事件
作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 QML 中有一些元素本身是不具备交互能力的(例如:Rectangle、Text、Image 等),那么如何通过鼠标来控制它们的行为呢?这里就需要用到 MouseArea 元素了,它继承于 Item 且不可见,通常需要与可见元素结合使…...
极智项目 | 实战pytorch arcface人脸识别
欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文介绍 实战pytorch arcface人脸识别,并提供完整项目源码。 本文介绍的实战arcface人脸识别项目,提供完整的可以一键训练、测试的项目工程…...
别再到处问SQ01怎么用了!手把手教你从SQ03到SE93,搞定SAP Query自定义报表
SAP Query自定义报表实战:从零构建航班销售分析工具 每次月底做销售分析时,看着系统里那些标准报表总觉得差点意思——要么字段不全,要么格式不符合业务习惯。上周五下午,市场部的Lisa又急匆匆跑来问我:"能不能帮…...
Windows平台实战:CMake与MinGW联手编译libmodbus动态库
1. 为什么要在Windows下编译libmodbus动态库 很多工业自动化领域的开发者都会遇到这样一个需求:需要在Windows平台上开发Modbus通信工具。libmodbus作为一款开源的Modbus协议栈实现,因其轻量级和跨平台特性广受欢迎。但在Windows环境下直接使用源码会遇到…...
RISC-V汽车电子开发:功能安全认证工具链的挑战与实践
1. 项目概述:RISC-V在汽车领域的破局与挑战最近和几个在主机厂和Tier 1做嵌入式开发的老朋友聊天,话题总绕不开芯片选型和开发工具。大家普遍的感觉是,传统的Arm架构虽然生态成熟,但在追求极致能效比和定制化的今天,成…...
电池创新如何跨越量产鸿沟:从实验室到工厂的工程化实践
1. 从实验室到工厂:电池创新的“量产魔咒”最近几年,电池行业绝对是资本和媒体眼中的“香饽饽”。动辄数十亿、上百亿美元的投资砸向新的生产设施和前沿技术,目标直指电动汽车、智能电网乃至整个智慧城市的能源基石。新闻稿里,我们…...
独立语音AI创业必读,ElevenLabs Independent计划全链路解析:从白名单内测→额度扩容→月度用量审计→续期失败预警
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs Independent计划的战略定位与生态价值 ElevenLabs Independent 计划并非单纯的技术授权项目,而是面向独立开发者、开源创作者与小型 AI 应用团队构建的可持续协作基础设施。其核…...
量化研究实战:从数据到策略的Python框架与机器学习应用
1. 从零到一:量化研究实战框架搭建心路如果你和我一样,对金融市场既着迷又敬畏,总想用理性和数据去解读那些看似随机的价格波动,那么“量化研究”这个词对你来说一定不陌生。它听起来高大上,仿佛是高学历精英们在华尔街…...
从怀疑到真香!2026年我亲测十多款语音识别转文字app只留这一个
开完2小时讨论会,你要花3小时逐句整理纪要?采访了3个受访者,你戴耳机听一天录音,还漏了一半核心观点?做方言访谈,转出来的文字驴唇不对马嘴,你还要返工重听? 这些磨人的痛点…...
【LeetCode 手撕算法】(二分查找)搜索插入位置、搜索二维矩阵、查找数组相同的所有位置、搜索旋转排序数组、旋转升序数组的最小值
复杂度为O(log n)且有序用二分查找35-搜索插入位置思路:二分查找,左右指针 求中间值注意:while的查询条件是>class Solution {public int searchInsert(int[] nums, int target) {int left0;int rightnums.length-1;while(left<right){…...
【信息科学与工程学】【通信工程】第四十三篇 骨干网方案设计-02跨境网络
一、方案 1.1 整体方案设计概要 设计的云网融合方案,综合考虑其全球互联需求、安全合规性、性能优化及跨国运营挑战: 1.1.1、需求分析 网络互联需求: 国内互通: 安全、稳定、低延迟连接中国大陆(严格合规要求)。 国际互通: 高性能连接美国(东西海…...
RPG Maker MV终极插件合集:100+免费插件打造专业级游戏体验
RPG Maker MV终极插件合集:100免费插件打造专业级游戏体验 【免费下载链接】RPGMakerMV RPGツクールMV、MZで動作するプラグインです。 项目地址: https://gitcode.com/gh_mirrors/rp/RPGMakerMV 你是否曾经为RPG Maker MV的功能限制感到困扰?想要…...
