线上的数据库发现索引不合理怎么处理

线上的数据库发现索引不合理的处理步骤是:一、识别问题;二、处理问题;三、测试。在处理索引问题之前,需要先识别问题。在识别问题时,可以通过使用sql语句检查和使用工具检查。还可以使用一些工具来检查不合理的索引,比如 Percona Toolkit 或 MySQLTuner 等。

一、识别问题

在处理索引问题之前,需要先识别问题。在识别问题时,可以通过以下两个方面来检查:

使用sql语句检查

我们可以使用sql语句来检查哪些索引不合理,具体操作如下:

-- 查询当前数据库所有的索引
SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = '{database name}';

-- 查询当前数据库中索引使用情况
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES WHERE TABLE_SCHEMA = '{database name}';

使用工具检查

还可以使用一些工具来检查不合理的索引,比如 Percona Toolkit 或 MySQLTuner 等。

二、处理问题

在识别问题后,就需要进行索引调整了。以下是几种常见的索引调整方法:

删除不必要的索引

在进行索引调整时,可以首先删除一些不必要的索引。比如一些未被使用或者是重复的索引。

-- 查询出哪些索引未被使用
SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = '{database name}' AND  INDEX_NAME NOT IN ( SELECT DISTINCT INDEX_NAME FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES WHERE TABLE_SCHEMA = '{database name}' );

-- 删除未被使用的索引
ALTER TABLE {table name} DROP INDEX {index name};

修改索引

在删除不必要的索引后,还需要对一些索引进行修改。比如对一些长时间未使用或者查询时间过长的索引进行修改或删除,如果有必要,可以新增一些索引以提高查询效率。

-- 修改索引
ALTER TABLE {table name} DROP INDEX {index name};
ALTER TABLE {table name} ADD INDEX {index name}({column name});

-- 新增索引
ALTER TABLE {table name} ADD INDEX {index name}({column name});

三、测试

在处理完索引问题后,需要对数据库进行测试,确保处理后的性能有所提升。

延伸阅读:

什么是数据库?

数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。

数据库管理系统是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML;或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。

文章标题:线上的数据库发现索引不合理怎么处理,发布者:Flawy,转载请注明出处:https://worktile.com/kb/p/53159

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
FlawyFlawy站长
上一篇 2023年5月29日
下一篇 2023年5月29日

相关推荐

  • 如何构建高效的研发管理体系

    构建高效的研发管理体系需要三个关键步骤:1、研发协作流程化;2、研发规范制度化;3、研发技术标准化。研发管理的本质是从流程化,标准化,制度化等维度建立“管理机制”。 1、研发协作流程化 研发管理流程中通常会涉及项目管理和人事管理,而流程化构建的目的是提升研发效率的效能,降低协作成本,这个也是判别一件…

    2022年11月14日
    28200
  • 影响进度管理的因素有哪些

    影响进度管理的因素有以下几点:1、人的影响;2、技术、方法和工艺的影响;3、设备、材料的影响;4、资金的影响;5、环境的影响。人的影响,项目经理、项目团队以及项目干系人都会对进度施加影响。 1、人的影响 人是项目任务执行的根本保障,对项目进度能够施加影响的主要人员包括: 项目经理:项目经理是项目管理…

    2022年11月30日
    39500
  • 什么是Java的堆栈跟踪

    Java的堆栈跟踪是一种调试工具,用于诊断程序运行中出现的异常或错误。它提供了一个详细的错误报告,描述了程序执行的各个阶段和在哪里出现问题。与其他编程语言中的调试工具相比,Java的堆栈跟踪具有更高级的特性,包括线程安全和垃圾回收。本文将深入探讨Java堆栈跟踪的核心组成、如何解读它以及它在软件开发…

    2023年7月13日
    11900
  • 瀑布模型的局限性是什么

    瀑布模型的局限性包括以下几点:1、不支持需求动态变化;2、工作阶段间依赖性强;3、交付时才能看到产品。瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。 1、不支持需求动态变化 瀑布模型要求在软件开发的初始阶段(需求分析阶段)就给出系统全部的、准…

    2022年12月27日
    31400
  • 有哪些著名的Wiki软件平台

    WIKI软件平台广泛应用于协作性知识共享与管理,其中最著名的包含1、MediaWiki;2、DokuWiki;3、Wiki.js;4、XWiki;5、TWiki/Foswiki。MediaWiki以其使用广泛且支持自由内容贡献的特点成为最受欢迎的Wiki平台,是维基百科背后的强力驱动。DokuWik…

    2023年11月15日
    2300
  • jira工具有哪些企业售卖

    Jira工具销售主要涉及的企业包括:1、Atlassian公司;2、Adaptavist;3、Xpand IT;4、Tempo;5、Zephyr;6、BigPicture。Atlassian公司是Jira的开发者,提供Jira软件的购买与服务,其中Jira Software用于敏捷项目管理;Jira…

    2023年7月11日
    15200
  • 为什么要使用代码来进行mysql的操作

    使用代码来进行mysql的操作的原因:1、效率更高;2、正确性更好;3、批量进行操作;4、更方便地维护数据库;5、实现复杂的查询条件。效率更高是指,使用代码可以自动执行一系列的操作,不需要人工去一步一步的手动操作,这样可以提高效率。 一、使用代码来进行mysql的操作的原因 二、mysql常用代码 …

    2023年1月9日
    15600
  • 工作任务管理系统的要求是什么

    工作任务管理系统的要求如下:1、系统采用组织结构图的形式;2、“信息中心”可作为系统用户之间交流平台;3、“我的任务”是系统的核心部分;4、可以指定任务的重要性、任务执行期限、执行人员、任务类型等;5、可对任务的状态进行标记。 1、系统采用组织结构图的形式 在用户管理方面,系统采用组织结构图的形式,…

    2022年11月7日
    20500
  • 常用bug管理工具有哪些

    国内外最常用的bug管理工具有:1、Excel;2、PingCode;3、Worktile;4、Bugzilla;5、禅道;6、Jira;7、ClickUp;8、Zoho bug Tracker;9、Asana;10、nTask。bug管理是软件开发项目中一个很重要的环节,选择一个好的bug管理工具…

    2022年11月16日
    2.6K00
  • JAVA应用开发和后台有什么区别

    JAVA应用开发和后台基本无区别。两者基本上一样的,ssh也可以为手机APP开发后台。其实对于后台开发来说原理都差不多。只不过app的后台开发和web不一样的地方在于传输数据格式不一样,一般来说web访问后返回的是一个html页面,少部分是json格式。 JAVA应用开发和后台基本上一样的 ssh也…

    2023年2月7日
    15900

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部