MySql数据库优化的八种方式

本文通过8个方法优化Mysql数据库:创建索引、复合索引、索引不会包含有NULL值的列、使用短索引、排序的索引问题、like语句操作、不要在列上进行运算、不使用NOT IN和<>操作。

1、创建索引
对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加索引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会引起致命的性能下降。但是也不是什么情况都非得建索引不可,比如性别可能就只有两个值,建索引不仅没什么优势,还会影响到更新速度,这被称为过度索引。
2、复合索引
比如有一条语句是这样的:select * from users where area='beijing' and age=22;
如果我们是在area和age上分别创建单个索引的话,由于mysql查询每次只能使用一个索引,所以虽然这样已经相对不做索引时全表扫描提高了很多效率,但是如果在area、age两列上创建复合索引的话将带来更高的效率。如果我们创建了(area, age, salary)的复合索引,那么其实相当于创建了(area,age,salary)、(area,age)、(area)三个索引,这被称为最佳左前缀特性。因此我们在创建复合索引时应该将最常用作限制条件的列放在最左边,依次递减。
3、索引不会包含有NULL值的列
只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL。
4、使用短索引
对串列进行索引,如果可能应该指定一个前缀长度。例如,如果有一个CHAR(255)的 列,如果在前10 个或20 个字符内,多数值是惟一的,那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。
5、排序的索引问题
mysql查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
6、like语句操作
一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。
7、不要在列上进行运算
select * from users where YEAR(adddate)<2007;
将在每个行上进行运算,这将导致索引失效而进行全表扫描,因此我们可以改成
select * from users where adddate<‘2007-01-01';
8、不使用NOT IN和<>操作
NOT IN和<>操作都不会使用索引将进行全表扫描。NOT IN可以NOT EXISTS代替,id<>3则可使用id>3 or id<3来代替。

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

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

相关文章

maven-assembly-plugin 自定义打包

我想把input文件夹给打包进去 pom文件 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><executions><execution><!-- 配置执行器 --><i…

将jpg图片和txt标签文件重新命名

处理文件夹里面jpg图片的名字 将文件夹里面的jpg图片重新命名 import osdirectory C:\\Users\\23608\\Desktop\\Luli_work\\data\\fanStudent\\dataset i 1 for file in os.listdir(directory):if file.endswith(.jpg):old_name os.path.basename(file).split(.)[0]new_na…

vue2 百度地图实现 车在线路上移动 BMap、BMapGL

文章目录 效果BMap 实现vue2 中BMap实现vue2 中使用BMapGL实现 参考文章&#xff1a; 百度地图API实时画出动态运行轨迹&#xff08;一条行驶轨迹&#xff09;&#xff0c;车头实时指向行驶方向&#xff0c;设置角度偏移 下文中可能用到的图片统一放在上面&#xff0c;自取。 …

Halcon threshold_sub_pix (Operator)

read_image(Image,fabrik) threshold_sub_pix(Image,Border,35) dev_display(Border)Image是输入的原始图像&#xff0c;Threshold是设定的阈值&#xff0c;Width和Height是像素值计算区域的大小&#xff0c;ThresholdedRegion是经过分割后得到的二值化结果。 在对图像进行二值…

深眸科技以机器视觉高性能优势,为消费电子行业提供优质解决方案

机器视觉技术近年来发展迅速&#xff0c;基于计算机对图像的处理与分析&#xff0c;能够识别和辨别目标物体&#xff0c;被广泛应用于人工智能、智能制造等领域。 机器视觉凭借着高精度、高效率、灵活性和可靠性等优势&#xff0c;不断推进工业企业生产自动化和智能化进程&…

返回值的作用,用法

函数返回值 定义&#xff1a;函数的返回值是指函数被调用之后&#xff0c;执行函数体中的代码所得到的结果&#xff0c;这个结果通过return语句返回。 返回值的类型必须与函数定义类型一致 return用法 return 语句的一般形式为&#xff1a; …

Anaconda安装教程及多次安装失败原因

Anaconda下载网址 本教程包含两部分&#xff1a;安装教程和多次安装Anaconda导致的失败原因分析 Anaconda安装包官网下载链接 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b5be0deb0aef4a81a594df79ddc1cc96.png#pic_center 安装 按以下步骤安装 红色波浪…

【洛谷随机挑战系列】第一期:徒手计算质数表,你敢相信?

目录 前言 准备环节 随机程序公示 随机结果公示 ​编辑做题环节 解读题目 思路点拨 AC代码

UEC++ 探索虚幻5笔记 day11

虚幻5.2.1探索 项目目录探索 C工程一定不能是中文路径&#xff0c;中文项目名&#xff0c;最好全部不要用中文&#xff0c;蓝图项目可以是中文浅浅创建一个空项目&#xff0c;讲解一下之前UE4没有讲解的项目目录文件的分布组成 .vs&#xff1a;文件夹一般是项目编译缓存文件夹…

一维相位解包裹

一维相位解包裹 本文首先介绍最简单的一维的位相解包裹算法。设W是包裹运算符&#xff0c;中是解包裹位相&#xff0c;是包裹的位相。则一维位相解包裹可表示为&#xff1a; 解包裹就是要选取正确的k,满足&#xff1a; 两个相邻像素位相的差值如下&#xff1a; 由式(2-1)和式(2…

C语言——2048完整版

2048是一个简单又有趣的小游戏&#xff0c;相信大家都接触并了解过&#xff0c;那如何通过代码来实现他呢&#xff1f;下面就让我们来一起看看。 目录 1、头文件 2、主函数 3、 StarGame 4、GetNum 5、Show 6、Picture 7、GetButton 8、MergeLeft 9、MergeUp 10、MergeR…

ESP32 S3+3线SPI+HX8347

HX8347 240*320 TFT屏 3线SPI&#xff08;CS,SCL,SDI&#xff09;用ESP32 S3驱动 一、源码 /* SPI Master exampleThis example code is in the Public Domain (or CC0 licensed, at your option.)Unless required by applicable law or agreed to in writing, thissoftware i…

基于下游竞争的在线评论引入策略研究

基于下游竞争的在线评论引入策略研究 分析一下这篇文章吧 中国管理科学的2023年10月的文章&#xff0c;非常新 文章的结论 引入在线评论会使得线下零售商在持续销售阶段降价&#xff0c;线上零售商在持续销售阶段提价&#xff0c;从而使得线上线下零售商的价格差异增大&…

Python 作业解答

1. 在给定的一些数字中找出2个数&#xff0c;使得它们的和为N 题目要求 如给定5个数字 [3&#xff0c;4&#xff0c;9&#xff0c;7&#xff0c;10] 从中选择两个数使用它们的和为11。必须保证这些数据中有答案&#xff0c;并且只有一个答案。 1.1 解题思路一&#xff1a;双…

第2讲、布署Hyper-V软硬件需求:

硬件&#xff1a; 1、处理器&#xff08;CPU&#xff09;&#xff1a; a.处理器必须是64位&#xff0c;1.4GHz b.处理器必须支持硬件虚拟化技术 CPU(主板BIOS启用): Intel VT AMD-V 2、需要启用硬件数据保…

Android平板还能编程?Ubuntu本地安装code-server远程编程写代码

文章目录 1.ubuntu本地安装code-server2. 安装cpolar内网穿透3. 创建隧道映射本地端口4. 安卓平板测试访问5.固定域名公网地址6.结语 1.ubuntu本地安装code-server 准备一台虚拟机,Ubuntu或者centos都可以&#xff0c;这里以VMwhere ubuntu系统为例 下载code server服务,浏览器…

Spark - 输出parqute文件

pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 …

[RK-Linux] 移植Linux-5.10到RK3399(四)| 检查HDMI配置与打开内核LOGO显示

文章目录 一、HDMI二、VOP三、显示内核LOGO一、HDMI RK3399 的 HDMI 接口如图: datasheet 介绍: HDMI 接口各个引脚的作用如下: 接口标签作用HDMI_TX0P HDMI_TX0PA差分信号线,用于传输 HDMI 通道 0 的正向数据HDMI_TX0N HDMI_TX0NA

JavaWeb-Tomcat

1. Web服务器 web服务器由硬件和软件组成&#xff1a; 硬件&#xff1a;计算机系统软件&#xff1a;计算机上安装的服务器软件&#xff0c;安装后可以为web应用提供网络服务。 常见的JavaWeb服务器&#xff1a; Tomcat&#xff08;Apache&#xff09;&#xff1a;应用最广泛的…

数据结构 | 查漏补缺之求叶子结点,分离链接法、最小生成树、DFS、BFS

求叶子结点的个数 参考博文&#xff1a; 树中的叶子结点的个数 计算方法_求树的叶子节点个数-CSDN博客 分离链接法 参考博文 数据结构和算法——哈希查找冲突处理方法&#xff08;开放地址法-线性探测、平方探测、双散列探测、再散列&#xff0c;分离链接法&#xff09;_线性…