当前位置: 首页 > 知识库问答 >
问题:

查询执行时间长

龚苏燕
2023-03-14

我目前使用的是mysql

我有两个名为person和zim_list_id的表,这两个表都有超过200万行

update person p JOIN zim_list_id z on p.person_id = z.person_id
set  p.office_name = z.`Office Name`;
create index idx_person_office_name on person(`Office_name`);
create index idx_zim_list_id_office_name on zim_list_id(`Office name`);

共有1个答案

郎志
2023-03-14

Office Name上的索引对此查询完全不起作用。您对这些索引所做的只是使插入和更新更慢,因为现在数据库必须在列更改时更新索引。

如果您还没有这些表,那么您真正需要的是这些表中person_id字段的索引,以使联接更加高效。

您还可以考虑将Office_Name添加为zim_list_id索引上的第二列,因为这将允许数据库完全从索引中填充查询的这一部分。但是我不会这样做,直到我检查了结果后,设置了简单的person_id索引。

最后,我想知道服务器中有多少内存(特别是相对于数据库的总大小而言),在MySql buffer_pool_size设置中有多少可用内存,以及服务器可能在做什么其他工作······也可能总是有环境因素。

 类似资料:
  • 我知道要冬眠。我有一个sql语句 我尝试用createCriteria和HQL实现它。 HQL: 问题是,此HQL的执行时间延长了10倍。并执行许多不必要的查询。我尝试使用注释字符串进行转换,它有了一些改进,但仍然比createCriteria查询长5倍,此外,我无法进行此转换 <代码>列表 版本数据防御

  • 问题内容: 我正在创建一个用于分析和生成查询的程序。我很好奇SQLite中是否存在一种方法,这样我可以查询查询处理所花费的时间?我无法以任何方式修改我的安装,因此该方法需要开箱即用。我正在用python编写工具,尽管我猜我可以使用timer类来计时执行时间,但是当我连接到远程计算机(并返回一致的计时)时,该方法将不起作用。 问题答案: 在sqlite3命令行程序中,您可以执行以下操作: 这将打印查

  • 一旦你建立好数据模型之后,django会自动生成一套数据库抽象的API,可以让你执行增删改查的操作。这篇文档阐述了如何使用这些API。关于所有模型检索选项的详细内容,请见数据模型参考。 在整个文档(以及参考)中,我们会大量使用下面的模型,它构成了一个博客应用。 from django.db import models class Blog(models.Model): name = mo

  • 执行获取HQL查询时出现异常。查询大部分时间都有效,但有时会显示此异常 数据库是MySQL,使用的服务器是JBoss 5.1.0 GA 显示的错误是: 组织。冬眠例外GenericJDBCException:无法在组织上执行查询。冬眠例外SQLStateConverter。在组织中处理非特定异常(SQLStateConverter.java:126)。冬眠例外SQLStateConverter。o

  • 使用执行hql查询时出现错误 我的疑问是 堆栈跟踪是