Mysql,再见吧!select * !

news2024/2/27 15:34:06

 点击上方“方志朋”,选择“设为星标”

回复”666“获取新整理的面试文章

作者:AIOps

应用程序慢如牛,原因多多,可能是网络的原因、可能是系统架构的原因,还有可能是数据库的原因。

那么如何提高数据库SQL语句执行速度呢?有人会说性能调优是数据库管理员(DBA)的事,然而性能调优跟程序员们也有莫大的关系。

程序中嵌入的一行行的SQL语句,如果使用了一些优化小技巧,定能达到事半功倍的效果。

技巧1  比较运算符能用 “=”就不用“<>”

“=”增加了索引的使用几率。

技巧2  明知只有一条查询结果,那请使用 “LIMIT 1”

“LIMIT 1”可以避免全表扫描,找到对应结果就不会再继续扫描了。

技巧3  为列选择合适的数据类型

能用TINYINT就不用SMALLINT,能用SMALLINT就不用INT,道理你懂的,磁盘和内存消耗越小越好嘛。

技巧4  将大的DELETE,UPDATE or INSERT 查询变成多个小查询

能写一个几十行、几百行的SQL语句是不是显得逼格很高?然而,为了达到更好的性能以及更好的数据控制,你可以将他们变成多个小查询。

技巧5  使用UNION ALL 代替 UNION,如果结果集允许重复的话

因为 UNION ALL 不去重,效率高于 UNION。

技巧6  为获得相同结果集的多次执行,请保持SQL语句前后一致

这样做的目的是为了充分利用查询缓冲。

比如根据地域和产品id查询产品价格,第一次使用了:

那么第二次同样的查询,请保持以上语句的一致性,比如不要将where语句里面的id和region位置调换顺序。

技巧7  尽量避免使用 “SELECT *”

如果不查询表中所有的列,尽量避免使用 SELECT *,因为它会进行全表扫描,不能有效利用索引,增大了数据库服务器的负担,以及它与应用程序客户端之间的网络IO开销。

技巧8  WHERE 子句里面的列尽量被索引

只是“尽量”哦,并不是说所有的列。因地制宜,根据实际情况进行调整,因为有时索引太多也会降低性能。

技巧9  JOIN 子句里面的列尽量被索引

同样只是“尽量”哦,并不是说所有的列。

技巧10  ORDER BY 的列尽量被索引

ORDER BY的列如果被索引,性能也会更好。

技巧11  使用 LIMIT 实现分页逻辑

不仅提高了性能,同时减少了不必要的数据库和应用间的网络传输。

技巧12  使用 EXPLAIN 关键字去查看执行计划

EXPLAIN 可以检查索引使用情况以及扫描的行。

其他

SQL调优方法有很多种,同样的查询结果可以有很多种不同的查询方式。其实最好的方法就是在开发环境中用最贴近真实的数据集和硬件环境进行测试,然后再发布到生产环境中。

热门内容:MySQL中,当update修改数据与原数据相同时会再次执行吗?
点赞功能,用 MySQL 还是 Redis ?知乎千万级高性能长连接网关是如何搭建的
读写分离很难吗?SpringBoot结合aop简单就实现了设计一个成功的微服务,堪称必备的9个基础知识

最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。明天见(。・ω・。)ノ♡

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

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

相关文章

AjaxControltoolkit(工具包)安装步骤说明

本来打算做一个系统搜索中Ajax AutoComplete自动提示的效果,想尝试一下以前用AjaxControlToolkit中控件,在官网上下载一个AjaxControlToolkit2.0版本我尽然忘了如何安装.很是汗了一把. 看来人都是有惰性的,哪怕自己认为以前比较熟练自信的东西 如果时间一长不做回顾还是不行的 …

写代码神器!双屏敲代码飞起,包邮送一台!

写代码如果用多个屏是件很爽的事情&#xff0c;敲代码Bug多不多不重要&#xff0c;逼格必须先到位&#xff01;所以&#xff0c;小编联合9位公众号主给大家送一款全新的金正(NINTAUS)20英寸直面黑色电脑显示器。写代码逼格高&#xff01;赠送规则本次活动联合了9个号主一起赞助…

很多都是python很简单吗,但是要如何才能入门python并精通呢?

1&#xff0c;python怎么学 一般来说,Python几个月应该是可以入门了。如果你几个月还没有入门&#xff0c;一定是方法不对&#xff0c;要么就是偷懒了.我在公众号里面有一篇文章详细写过 ‘初学者上来不要学爬虫’,爬虫虽然非常有趣&#xff0c;但是不适合小白用户。这里我列出…

有哪些好看的CNN模型画法?

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达编辑&#xff1a;忆臻本文仅作为学术分享&#xff0c;如果侵权&#xff0c;会删文处理机器学习算法与自然语言处理报道有哪些好看的CNN模型画法&#xff1f;作者&#xff…

C语言回溯算法解决N皇后问题

回溯算法的模型是 x, not satisfy ? x-- : continue. 代码中x作列号&#xff0c;y[x]保存第x列上皇后放置的位置。 1 #include<stdio.h>2 #include<math.h>3 #define N 54 int position_check(int,int*);5 void print_board(int count,int* y);6 int main()7 {8 …

面试官吐槽:“Python程序员就是不行!”网友:我能把你面哭!

最近几年&#xff0c;Python莫名火了起来&#xff0c;很多公司都想赶上这“莫名”的热潮&#xff0c;招聘到大牛人才。但是&#xff0c;最近一个HR在社交网站的吐槽又火了&#xff1a;那么问题来了&#xff0c;市面上为什么鲜有企业满意的优秀的Python程序员&#xff1f;企业到…

告别「灭霸式审稿」,IJCAI-21 的投稿者爽到家!

点击上方“视学算法”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达转自 | 新智元编辑 | Q没有「灭霸式审稿」的IJCAI-21&#xff0c;你的论文中了吗&#xff1f;还记得去年的那封来自时任程序主席Christian Bessiere的邮件拒信吗&#xff1a…

50k大牛告诉你Python怎么学,10个特性带你快速了解python

前言 如果你是一个正在学习python的c、c or java程序员&#xff0c;又或者你是刚刚接触python&#xff0c;刚刚开始学习python&#xff0c;那么&#xff0c;请认真看完这10个语言特性&#xff0c;你会受益匪浅的。 关注转发私信小编“资料”即可领取2021最新全套python零基础入…

医疗人工智能前景——医学影像

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达作者&#xff1a;Arya医学图像AI&#xff08;博士&#xff09;在读&#xff0c;研究方向为unsupervised deep learning; multi-modal; PET-CT. 写这篇文章梳理一下学习思路…

TCP/IP 笔记 1.3 IP:网际协议

---恢复内容开始--- I P是T C P / I P协议族中最为核心的协议。所有的 T C P、U D P、I C M P及I G M P数据都以I P数据报格式传输。  不可靠( u n r e l i a b l e)的意思是它不能保证 I P数据报能成功地到达目的地。 I P仅提供最好的传输服务。如果发生某种错误时&#xff…

eclipse 中配置maven环境

选择 菜单栏 window -preferences-maven- installations 点击add 添加自己的maven 库 配置 setting 第一个为全局配置 第二个为用户配置可以覆盖全局配置 当在用户配置的镜像源找不到 响应的依赖的时候会在全局配置的镜像源中寻找 setting.xml 中配置镜像源 在mirrors标签中添加…

Nacos 1.3.0 发布, 全新内核构建

点击上方“方志朋”&#xff0c;选择“设为星标”回复”666“获取新整理的面试文章1.3.0版本开始修炼内功&#xff0c;聚焦“简单”、“性能”、“高可用”这核心的三个点进一步提升Nacos核心竞争力。内嵌关系型分布式数据库&#xff0c;简化集群部署模式集群管理下沉统一&…

基于 OpenCV 和 OpenPose 的棒球挥杆人体姿势估计

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达介绍人体姿态估计是一个非常有趣的领域&#xff0c;如果我们能够将诸如棒球摆动或投球等运动的人体姿势量化为数据&#xff0c;那么我们或许能够将数据转化为有用的见解&a…

揭开「拓扑排序」的神秘面纱

作者 | 小齐本齐责编 | Carol来源 | 码农田小齐Topological sort 又称 Topological order&#xff0c;这个名字有点迷惑性&#xff0c;因为拓扑排序并不是一个纯粹的排序算法&#xff0c;它只是针对某一类图&#xff0c;找到一个可以执行的线性顺序。这个算法听起来高大上&…

像“打游戏”一样用Numpy,试试?

点击上方“视学算法”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达子豪 发自 凹非寺 量子位 报道 | 公众号 QbitAI科学计算工作者不必再为代码头痛了&#xff01;现在&#xff0c;你能像“打游戏”一样&#xff0c;无需编码&#xff0c;轻松…

七夕要到了,用Python比心表白

大家好&#xff0c;欢迎来到 【python教程入门学习】&#xff01; 每到各种节日&#xff0c;不少小伙伴们都会遇到这样一个世纪问题——怎么给心仪的女生/女朋友/老婆一个与众不同的节日惊喜。 这不马上就又要到七夕了嘛&#xff0c;我们可以尝试用python给女朋友比心表白&am…

Java基础知识回顾之四 ----- 集合List、Map和Set

前言 在上一篇中回顾了Java的三大特性&#xff1a;封装、继承和多态。本篇则来介绍下集合。 集合介绍 我们在进行Java程序开发的时候&#xff0c;除了最常用的基础数据类型和String对象外&#xff0c;也经常会用到集合相关类。 集合类存放的都是对象的引用&#xff0c;而非对象…

这12张手绘图,让我彻底搞懂了微服务架构!

点击上方“方志朋”&#xff0c;选择“设为星标”回复”666“获取新整理的面试文章作者&#xff1a;tengshe789juejin.im/post/5c0ba2bef265da614d08fefe微服务的概念最早在 2012 年提出&#xff0c;在 Martin Fowler 的大力推广下&#xff0c;微服务在 2014 年后得到了大力发展…

用 Python 实现手机自动答题,这下百万答题游戏谁也玩不过我!

作者 | 李秋键责编 | Carol出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;引言如果谈到这几年手机上各平台最常见的引流福利&#xff0c;必然是答题赢大奖系列小游戏了。像什么头号英雄&#xff0c;百万玩家之类的&#xff0c;充斥在我们生活中&#xff0c;同时也成…

零基础入门学习Python,我与python的第一次亲密接触后的感受!

前言&#xff1a;Python是适合初学者入门最好的语言 Python适合初学者入门最好的语言 人工智能用Python&#xff1f;高考要加入Python&#xff1f;现在连微软官方Excel都要把Python作为官方语言&#xff01;Python魅力这么大&#xff01;小伙伴们知道吗&#xff1f;小编只想说&…