MySQL面试题--sql优化的经验

news2024/11/25 14:54:00

表的设计优化(参考阿里开发手册嵩山版

        比如设置合适的数值(tinyint   int   bigint),要根据实际情况选择

        比如设置合适的字符串类型(charvarcharchar定长效率高,varchar可变长度,效率稍低

SQL语句优化

        SELECT语句务必指明字段名称(避免直接使用select *

        SQL语句要避免造成索引失效的写法

        尽量用union all代替union   union会多一次过滤,效率低

        避免在where子句中对字段进行表达式操作

        Join优化 能用innerjoin 就不用left join right join,如必须使用 一定要以小表为驱动,内连接会对两个表进行优化,优先把小表放到外边,把大表放到里边。left join right join,不会重新调整顺序

主从复制、读写分离

如果数据库的使用场景读的操作比较多的时候,为了避免写的操作所造成的性能影响 可以采用读写分离的架构。

读写分离解决的是,数据库的写入,影响了查询的效率。

面试回答

面试官:sql的优化的经验

候选人:嗯,这个在项目还是挺常见的,当然如果直说sql优化的话,我们会 从这几方面考虑,比如 建表的时候、使用索引、sql语句的编写、主从复制,读写分离,还有一个是 如果量比较大的话,可以考虑分库分表

面试官:创建表的时候,你们是如何优化的呢?

候选人:这个我们主要参考的阿里出的那个开发手册《嵩山版》,就比如, 在定义字段的时候需要结合字段的内容来选择合适的类型,如果是数值的 话,像tinyint、int 、bigint这些类型,要根据实际情况选择。如果是字符串 类型,也是结合存储的内容来选择char和varchar或者text类型

面试官:那在使用索引的时候,是如何优化呢?

候选人:【参考索引创建原则 进行描述】MySQL优化--索引创建原则,索引什么时候会失效_Java菜鸟尹先生的博客-CSDN博客

面试官:你平时对sql语句做了哪些优化呢?

候选人:嗯,这个也有很多,比如SELECT语句务必指明字段名称,不要直 接使用select * ,还有就是要注意SQL语句避免造成索引失效的写法;如果是 聚合查询,尽量用union all代替union ,union会多一次过滤,效率比较低; 如果是表关联的话,尽量使用innerjoin ,不要使用用left join right join,如 必须使用 一定要以小表为驱动

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/666894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于智慧消防建设的探究 安科瑞 许敏

【摘要】随着城市化发展步伐的不断加快,智慧城市的建设已经成为城市发展的重要目标,而智慧消防则是其重要组成部分,不容忽视。基于大数据时代背景下,实现智慧消防建设的时候,更加需要以信息化为导向,这样才…

从零开始 Spring Boot 45:FactoryBean

从零开始 Spring Boot 45:FactoryBean 图源:简书 (jianshu.com) 在前文中我介绍过 FactoryBean,本篇文章会更深入的介绍相关内容。 依赖注入 从一个简单示例开始,我们看使用FactoryBean定义的 Spring Bean 如何注入。 假设我们…

mysql数据库备份和恢复和日志管理

数据库备份和恢复和日志管理 一:数据库备份备份和恢复1.备份分类从物理与逻辑的角度,备份可分为从数据库的备份策略角度,备份可分为 2.常见的备份方法3.MySQL完全备份和恢复分类一:物理冷备份与恢复关闭MySQL数据库使用tar命令直接…

DJ5-1 链路层概述

目录 一、链路层的术语 二、链路层的类比 三、链路层提供的服务 四、链路层实现的位置 1、网络适配器 2、网络适配器工作过程 一、链路层的术语 ① 节点 (nodes):主机和路由器 ② 链路 (links):沿着通信路径连接相邻节点的通信信道 有线链路 (w…

locust学习教程(2)- 性能测试虚拟环境配置

前言 写这个是因为,好多专职自动化测试都不知道怎么配置虚拟,可想而知萌新们整个人都是懵的 1、安装pthon(略) 2、安装pycharm(略) 3、配置性能测试的虚拟环境 桌面新建目录 demolocust pycharm中 open …

Grdle版本的不同导致的一些差异

gradle版本是不断迭代升级的,升级后对有些配置是有影响的,比如对kotlin配置、上传maven的方式,特此记录一下 对kotlin配置的影响 我们主项目的gradle版本是6.3,对项目进行koltin配置的语法了,官方文档教程是一样的 …

计算机图形学-坐标系(坐标总汇)

建议买本书《计算机图形学》第四版 1 坐标系 1.1 在我们谈论坐标变换之前,我们必须对我们的坐标系做一个正式的定义。DirectX 使用的默认坐标系是左手坐标系。OpenGL 使用的默认坐标系是右手坐标系。 我们可以通过使用手对坐标系进行一个简单的判断。 左手坐标…

LiangGaRy-学习笔记-Day24

1、web服务介绍 1.1、Linux常见的web服务 httpd nginx tomcat 1.2、LAMP架构 L:CentOS CentOS7RHEL7等等 A:Apache apache:网页服务器 httpd服务 M:MySQL MySQL:关系型数据库 AB公司–>08年被SUN公司收购…

基于.Net6使用YoloV8的分割模型

前言 在目标检测一文中,我们学习了如何处理Onnx模型,并的到目标检测结果,在此基础上,本文实现基于.Net平台的实例分割任务。 执行YoloV8的分割任务后可以得到分割.pt模型。由于Python基本不用于工业软件的部署,最终还…

1.1 渲染流水线

整体流程 应用阶段:粗粒度剔除、进行渲染设置、准备基本数据、输出到几何阶段 几何阶段:顶点着色器、曲面细分、几何着色器、顶点裁剪、屏幕映射 光栅化阶段:三角形(点/线)设置、三角形(点/线&#xff09…

基于android studio开发的火车票购票系统app,android移动开发课设,毕业设计

基于android studio开发的火车票购票系统app 项目概述 基于android studio开发实现火车票购票系统app 适用于android移动开发学习项目,课程设计,毕业设计等 开发环境及工具 开发工具:android studio 或者intellij idea专业版操作系统&…

最新大学计算机专业实习心得报告

最新大学计算机专业实习心得报告(篇1) 一、实习目的 通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,为顺利毕业进行做好充分的准备,并为自己能顺利与社会环境接轨做准备。通过这次实习&#xff…

软件测试入门篇

软件测试含义 在规定条件下对程序进行操作,发现软件错误,衡量软件质量,对其是否能满足设计要求进行评估的过程 开发不做测试原因:测试力度,思维方式,关注度 计算机定义 一种可以自动高效进行技术操作的…

Debian 版本代号与《玩具总动员》

作为最受欢迎的 Linux 发行版之一,Debian 是许多其他发行版的基础,许多非常受欢迎的 Linux 发行版,例如 Ubuntu、Knoppix、PureOS 、Tails、Armbian 以及 Raspbian,都基于 Debian。 经过近 20 个月的开发,2023 年 6 月…

基于SpringBoot的大学生成长管理系统的设计与实现

摘 要 大学生成长管理系统是记录大学生在大学期间的成长记录史。它是为了促进学生成长、提升学习兴趣及其质量。系统是集辅导员、学生和管理员为核心的一个综合平台。 本系统采用Java编程语言,完成了大学生成长管理系统。系统的使用角色分为三个:管理员…

鉴源实验室丨HSM技术浅述

作者 | 徐奕华 上海控安可信软件创新研究院汽车网络安全组 来源 | 鉴源实验室 引言:2023年5月初,工业和信息化部装备工业一司组织全国汽车标准化技术委员会开展《汽车整车信息安全技术要求》等四项强制性国家标准的制修订[1]。这意味着车辆信息安全管理…

CPU调优 iostat命令

目录 一、命令描述 二、命令作用 三、命令 1.用法 2.命令参数 四、使用实例 1.CPU属性值说明 五、压力测试stress 1.stress介绍 2.stress参数 3.安装stress 四、实验 五、总结 一、命令描述 Linux 中的 iostat 是I/O statistics(输入/输出统计&#xf…

毕业设计心得总结10篇

毕业设计心得总结1 201_年5月30日上午,我们的毕业论文答辩圆满结束了。当刘老师给我们送上人生的祝语时,一种即将离别的难舍之情油然而生,我开始眷恋培养我大学四年的母校,看着一张张熟悉的面孔,过去的欢乐和不快都烟消…

JavaEE课程设计——校园招聘管理系统(vue框架分析)

目录 Vue架构 登录 Vue架构 前端执行命令 npm run serve 这是整个前端的目录结构 vue.config.js是对前端vue的一个配置, // var webpack require(webpack); const path require(path)function resolve(dir) {return path.join(__dirname, dir) }function pu…

每日学术速递6.13

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Tracking Everything Everywhere All at Once 标题:一次跟踪所有地方的一切 作者:Qianqian Wang, Yen-Yu Chang, Ruojin Cai, Zhengqi Li, Bharath Hariha…