热门标签 | 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 //可以以循环方式将日志文件写到多个文件

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


推荐阅读
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 本文介绍如何在将数据库从服务器复制到本地时,处理因外键约束导致的数据插入失败问题。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • PHP 各版本对比:标准版与最新顶级版的详细分析 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
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社区 版权所有