热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何优化MySQL数据库性能以提升查询效率和系统稳定性

MYSQL数据库调优 索引 1、对于常用的查询字段加索引,但如果常用字段只有几个常量值就不需要加索引,或者使用索引会失效的情况;2、索引失效的情况&#xff1
MYSQL数据库调优

索引

1、对于常用的查询字段加索引,但如果常用字段只有几个常量值就不需要加索引,或者使用索引会失效的情况;

2、索引失效的情况:

​ 1、索引列使用函数,计算(加减乘除等)

​ 2、like使用左模糊查询 ’%qwew’

​ 3、组合索引不使用第一列

​ 4、!&#61; not <>

​ 5、使用OR 条件查询 前后没有同时使用索引

​ 6、字段类型不同

​ 7、比较两列值 where 索引列A&#61;索引列B

​ 8、order by 单独使用

​ 等等

3、强制使用索引 force index(索引名) 例&#xff1a;SELECT * FROM subscription force index(expires_time) order by expires_time desc(order by单独使用&#xff0c;索引失效)

4、查看索引的的生效情况&#xff0c;在查询语句前加 EXPLAIN(仅对 select 生效)

​ id&#xff1a;表示sql的执行顺序&#xff08;sql中会有子查询&#xff09;&#xff0c;id越大优先级越高&#xff0c;同级别在上而下执行

​ select_type&#xff1a;

​ SIMPLE&#xff1a;查询中不包含子查询或者UNION

​ PRIMARY&#xff1a;查询中包含子查询&#xff0c;最外层查询则被标记为PRIMARY

​ SUBQUERY&#xff1a;在SELECT或WHERE列表中包含了子查询&#xff0c;该子查询被标记为SUBQUERY

​ DERIVED&#xff1a;在FROM列表中包含的子查询被标记为&#xff1a;DERIVED&#xff08;衍生&#xff09;

​ UNION&#xff1a;第二个SELECT出现在UNION之后&#xff0c;则被标记为UNION&#xff1b;若UNION包含在 FROM 子句的子查询中&#xff0c;外层SELECT将被标记为&#xff1a;DERIVED

​ UNION RESULT&#xff1a;从UNION表获取结果的SELECT

​ 等等

​ type&#xff1a;访问类型 ALL(全表查询) index(走索引) range(范围查询) 等等

​ possible_keys&#xff1a;可能使用的索引

​ key&#xff1a;真正使用到的索引

​ key_len&#xff1a;索引使用的字节数

​ ref&#xff1a;连接匹配条件

​ rows&#xff1a;查询记录大概需要查询的行数

​ filtered&#xff1a;返回结果的行占需要读到的行(rows)的百分比

​ Extra&#xff1a;额外信息

数据库配置文件优化

查看命令&#xff1a;

show status 看系统的资源

show variables 看变量&#xff0c;在my.cnf配置文件里定义的

show warnings 查看最近一个sql语句产生的错误警告&#xff0c;看其他的需要看.err日志

show processlist显示系统中正在运行的所有进程。

my.cnf配置(针对innodb引擎)

query_cache_size &#61; 128M //查询增加缓存&#xff0c;由于服务中的很多查询可能在一段时间内结果都是一样的&#xff0c;增加缓存后能大大降低查询时间&#xff0c;如果结果有更新&#xff0c;则会去查询数据库

query_cache_type &#61; 1 //开启查询缓存

query_cache_limit &#61; 50M //单个查询允许的最大的缓存内存&#xff0c;超过限制则不会缓存

thread_cache_size &#61; 20 //缓存空闲的线程

innodb_buffer_pool_size &#61; 4G //指定大小的内存来缓冲数据和索引,根据MySQL手册,建议设置为服务器内存的50%&#xff1b;MYISAM引擎使用 key_buffer_size

innodb_log_buffer_size &#61; 32M //redo log 的写缓存

innodb_log_file_size &#61; 128M //日志文件大小 更大的设置可以提高性能&#xff0c;但也会增加恢复故障数据库所需的时间

innodb_log_files_in_group &#61; 3 //可以以循环方式将日志文件写到多个文件

其他大多数配置使用默认参数即可


推荐阅读
  • MySQL InnoDB Double Write机制详解
    本文深入探讨了MySQL InnoDB存储引擎的Double Write技术,该技术通过在内存和磁盘上创建数据页的副本,确保了部分写失效(Partial Page Write)情况下的数据完整性和可靠性。同时,文章介绍了InnoDB以页为单位进行读取和更新的机制,并详细解析了Double Write的工作原理。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 云函数与数据库API实现增删查改的对比
    本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 本文详细介绍了MySQL数据库中的Bin Log和Redo Log,阐述了它们在日志记录机制、应用场景以及数据恢复方面的区别。通过对比分析,帮助读者更好地理解这两种日志文件的作用和特性。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 主板IO用W83627THG,用VC如何取得CPU温度,系统温度,CPU风扇转速,VBat的电压. ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 本文将探讨2015年RCTF竞赛中的一道PWN题目——shaxian,重点分析其利用Fastbin和堆溢出的技巧。通过详细解析代码流程和漏洞利用过程,帮助读者理解此类题目的破解方法。 ... [详细]
  • 本文详细介绍了 phpMyAdmin 的安装与配置方法,适用于多个版本的 phpMyAdmin。通过本教程,您将掌握从下载到部署的完整流程,并了解如何根据不同的环境进行必要的配置调整。 ... [详细]
author-avatar
梁义鹏e
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有