返回顶部
首页 > 资讯 > 数据库 >MySQL优化的最基础操作是什么
  • 135
分享到

MySQL优化的最基础操作是什么

2024-04-02 19:04:59 135人浏览 独家记忆
摘要

这篇文章主要介绍“Mysql优化的最基础操作是什么”,在日常操作中,相信很多人在mysql优化的最基础操作是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql优化的

这篇文章主要介绍“Mysql优化的最基础操作是什么”,在日常操作中,相信很多人在mysql优化的最基础操作是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql优化的最基础操作是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

                           

优化思路

详细的MySQL优化步骤如下:

  • 检查数据表结构,改善不完善设计

  • 跑一遍主要业务,收集常用的数据库查询SQL

  • 分析查询SQL,适当拆分,添加索引等优化查询

  • 优化SQL的同时,优化代码逻辑

  • 添加本地缓存Redis缓存

尽可能不要使用NULL值

因为建表的时候,如果不对创建的值设置默认值,MySQL都会设置默认为NULL。那么为啥用NULL不好呢?

  • NULL使得索引维护更加复杂,强烈建议对索引列设置NOT NULL

  • NOT IN!=等负向条件查询在有NULL值的情况下返回永远为空结果,查询容易出错

  • NULL列需要一个额外字节作为判断是否为NULL的标志位

  • 使用NULL时和该列其他的值可能不是同种类型,导致问题。(在不同的语言中表现不一样)

  • MySQL难以优化对可为NULL的列的查询

所以对于那些以前偷懒的字段,手动设置一个默认值吧,空字符串呀,0呀补上。

虽然这种方法对于MySQL的性能来说没有提升多少,但是这是一个好习惯,而且以小见大,不要忽略这些细节。

添加索引

对于经常查询的字段,请加上索引,有索引和没有索引的查询速度相差十倍甚至更多。

  • 一般来说,每张表都需要有一个主键id字段

  • 常用于查询的字段应该设置索引

  • varchar类型的字段,在建立索引的时候,最好指定长度

  • 查询有多个条件时,优先使用具有索引的条件

  • LIKE条件这样的模糊搜索对于字段索引是无效的,需要另外建立关键词索引来解决

  • 请尽量不要在数据库层面约束表和表之间的关系,这些表之间的依赖应该在代码层面去解决

当表和表之间有约束时,虽然增删查的SQL语句变简单了,但是带来的负面效果是插入等操作数据库都会去检查约束(虽然可以手动设置忽略约束),这样相当于把一些业务逻辑写到了数据库层,不便于维护。

优化表字段结构

数据库中那些可以用整形表示的数据就不要使用字符串类型,到底是用varchar还是char要看字段的可能值。

这种优化往往在数据库中有大量数据以后是不可行的,最好在数据库设计之前就设计好。

  • 对于那些可能值很有限的列,使用tinyint代替VARCHAR

    • 比如记录移动设备平台,只有两个值:AndroidiOS,那么就可以使用0表示android,1表示ios,这种列一定要写好注释

    • 为什么不用ENUM呢?ENUM扩展困难,比如后来移动平台又增加了一个ipad,那岂不是懵逼了,而tinyint加个2就行,而且ENUM在代码里面处理起来特别奇怪,是当成整形呢还是字符串,各个语言不一样。

    • 这种方式,一定要在数据库注释或者代码里面写明各个值的含义

  • 对于那些定长字符串,可以使用char,比如邮编,总是5位

  • 对于那些长度未知的字符串,使用varchar

  • 不要滥用bigint,比如记录文章数目的表id字段,用int就行了,21亿篇文章上限够了

  • 适当打破数据库范式添加冗余字段,避免查询时的表连接

查询的时候,肯定int类型比varchar快,因为整数的比较直接调用底层运算器就可以实现,而字符串比较要逐个字符比较。

定长数据比变长数据查询快,因为比较定长数据与数据之间的偏移是固定的,很容易计算下一个数据的偏移。而变长数据则还需要多一步去查询下一个数据的偏移量。不过。定长数据可能会浪费更多的存储空间。

大表拆分

对于那些数据量可能近期会超过500W或者增长很快的表,一定要提前做好垂直分表或者水平分表,当数据量超过百万以后,查询速度会明显下降。

分库分表尽量在数据库设计初期敲定方案,否则后期会极大增加代码复杂性而且不易更改。

垂直分表是按照日期等外部变量进行分表,水平分表是按照表中的某些字段关系,使用hash映射等分表。

分库分表的前提条件是在执行查询语句之前,已经知道需要查询的数据可能会落在哪一个分库和哪一个分表中。

优化查询语句

这个才是很多系统数据库瓶颈的始作俑者。

  • 请尽量使用简单的查询,避免使用表链接

  • 请尽量避免全表扫描,会造成全表扫描的语句包括但不限于:

    • where子句条件恒真或为空

    • 使用LIKE

    • 使用不等操作符(<>、!=)

    • 查询含有is null的列

    • 在非索引列上使用or

  • 多条件查询时,请把简单查询条件或者索引列查询置于前面

  • 请尽量指定需要查询的列,不要偷懒使用select *

    • 如果不指定,一方面会返回多余的数据,占用带宽等

    • 另一方面MySQL执行查询的时候,没有字段时会先去查询表结构有哪些字段

  • 大写的查询关键字比小写快一点点

  • 使用子查询会创建临时表,会比链接(JOIN)和联合(UNION)稍慢

  • 在索引字段上查询尽量不要使用数据库函数,不便于缓存查询结果

  • 当只要一行数据时,请使用LIMIT 1,如果数据过多,请适当设定LIMIT,分页查询

  • 千万不要 ORDER BY RAND(),性能极低

添加缓存

使用redis等缓存,还有本地文件缓存等,可以极大地减少数据库查询次数。缓存这个东西,一定要分析自己系统的数据特点,适当选择。

  • 对于一些常用的数据,比如配置信息等,可以放在缓存中

  • 可以在本地缓存数据库的表结构

  • 缓存的数据一定要注意及时更新,还有设置有效期

  • 增加缓存务必会增加系统复杂性,一定要注意权衡

到此,关于“MySQL优化的最基础操作是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL优化的最基础操作是什么

本文链接: https://lsjlt.com/news/66064.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL优化的最基础操作是什么
    这篇文章主要介绍“MySQL优化的最基础操作是什么”,在日常操作中,相信很多人在MySQL优化的最基础操作是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL优化的...
    99+
    2024-04-02
  • Docker基础操作是什么
    本篇内容介绍了“Docker基础操作是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!下载镜像docker pull centos2.查看...
    99+
    2023-06-04
  • Spark性能优化的基础是什么
    Spark性能优化的基础是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功...
    99+
    2023-06-03
  • Apache服务器基础操作是什么
    这篇文章主要介绍“Apache服务器基础操作是什么”,在日常操作中,相信很多人在Apache服务器基础操作是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Apache服务器基础操作是什么”的疑惑有所帮助!...
    99+
    2023-06-27
  • MySQL——MySQL的基础操作部分
    使用命令行登录 mysql -u root -p 直接敲击回车后输入密码即可: 当看到出现“mysql>“的符号之后,就表示已经进入到了MySQL系统中,就可以输入MySQL的命令对数据库进行操作了。 查看数据库 使用命令查看所有的数据库...
    99+
    2023-09-08
    mysql pycharm
  • Docker中优化Mysql运行内存的操作是什么
    Docker中优化Mysql运行内存的操作是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用docker stats查询运行内存,从这里可以看到,我的my...
    99+
    2023-06-26
  • MySQL数据库的基本操作和优化
    前言MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语...
    99+
    2024-04-02
  • 常用的MySQL优化操作
    操作系统配优化 执行计划与锁表查看 --查看连接信息以及连接执行的命令 SHOW PROCESSLIST --查看当前被锁住的表 show OPEN TABLES where In_use > 0; ...
    99+
    2014-09-16
    常用的MySQL优化操作
  • 什么是mysql的基础语言
    本文主要给大家简单讲讲什么是mysql的基础语言,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望什么是mysql的基础语言这篇文章可以给大家带来一些实际帮助。...
    99+
    2024-04-02
  • 什么是MySQL的基础语句
    本篇文章给大家主要讲的是关于什么是MySQL的基础语句的内容,感兴趣的话就一起来看看这篇文章吧,相信看完什么是MySQL的基础语句对大家多少有点参考价值吧。查看当前MYSQL支持的存储引擎show engi...
    99+
    2024-04-02
  • 零基础学MySQL(四)-- 数据库最常用的操作【查询基础篇 -- 单表查询】
    目录 📔一、最简单的 select 语句1️⃣基本语法2️⃣基本练习3️⃣补充说明(1) 使用表达式对查询的列进行运算(2) 在 select 语句中可使用 as 语句取别名 📕...
    99+
    2023-08-21
    数据库 mysql sql
  • hse管理工作的基础是什么
    一、hse管理工作的基础 HSE管理工作的基础是保护员工的健康和安全,以及保护环境。这需要企业采取一系列措施来评估和管理各种类型的风险,例如环境、健康和安全等。这些措施包括安全培训、安全观察与沟通、作业许可、个人安全行动计划、风险评价...
    99+
    2023-10-29
    管理工作 基础 hse
  • MySQL之查询语句的基本操作是什么
    这篇文章给大家分享的是有关MySQL之查询语句的基本操作是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。一.查询语句的基本操作1.查询语句的基本操作 - se...
    99+
    2024-04-02
  • JQuery中的基本操作是什么
    本文小编为大家详细介绍“JQuery中的基本操作是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“JQuery中的基本操作是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、jQuery的DOM操作1. ...
    99+
    2023-06-17
  • Java字符串操作、基本运算方法等优化方法是什么
    本篇内容主要讲解“Java字符串操作、基本运算方法等优化方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java字符串操作、基本运算方法等优化方法是什么”吧!字符串操作优化字符串对象字符...
    99+
    2023-06-17
  • HTML网页制作基础是什么
    这篇文章主要为大家展示了“HTML网页制作基础是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML网页制作基础是什么”这篇文章吧。一、HTML基础(1)...
    99+
    2024-04-02
  • MySQL查询优化器的工作原理是什么
    本篇内容介绍了“MySQL查询优化器的工作原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  My...
    99+
    2024-04-02
  • 优化操作系统文件系统缓存:从基础到实践
    一、文件系统缓存基础 文件系统缓存是一种由操作系统管理的内存区域,用于存储最近访问过的数据块。当应用程序请求读取或写入数据时,操作系统会首先检查缓存中是否有该数据块。如果存在,则直接从缓存中读取或写入数据,这比从磁盘读取或写入数据要快得...
    99+
    2024-02-27
    文件系统缓存、性能优化、linux
  • MySQL优化的方法是什么
    这篇文章主要介绍“MySQL优化的方法是什么”,在日常操作中,相信很多人在MySQL优化的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL优化的方法是什么”...
    99+
    2024-04-02
  • mysql中的优化器是什么
    这篇文章主要讲解了“mysql中的优化器是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中的优化器是什么”吧!说明分析器生成的语法树被认为是合法的,由优化器转化为执行计划。在m...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作