mysql 按计数排序性能

2023-12-06

我发现以下内容有点令人困惑......如果我执行以下查询,当按索引值“关键字”排序时,需要 0.0008 秒,但当按“计数”排序时,需要 3 秒以上。

以下过程大约需要 0.0008 秒:

SELECT keyword, COUNT(DISTINCT pmid) as count 
    FROM keywords 
    WHERE (collection_id = 13262022107433) 
    GROUP BY keyword 
    order by keyword desc limit 1;

这需要 3 秒多的时间:

SELECT keyword, COUNT(DISTINCT pmid) as count 
    FROM keywords 
    WHERE (collection_id = 13262022107433) 
    GROUP BY keyword 
    order by count desc limit 1;

按计数排序时,有没有办法加快结果集的排序速度?真的需要那么长的时间吗?还有其他选择吗?引擎是InnoDB。

非常感谢您的投入!


您可能需要添加额外的索引来协助计数阶段。

ALTER TABLE keywords ADD INDEX ckp_index (collection_id,keyword,pmid);

如果您已经有一个仅包含 collection_id 和关键字的复合索引,查询优化器仍将包含对表中 pmid 字段的查找。

通过添加这个新索引,这将删除任何表扫描并仅执行索引扫描。

这将加快查询的 count(distinct pmid) 部分。

试一试 !!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql 按计数排序性能 的相关文章

  • 与保留模式 GUI 相比,使用立即模式 GUI 对性能有何影响?

    我目前正在开发一个标准的 Windows 桌面应用程序 标准意味着没有花哨的东西 只是按钮 文本 滑块等 在研究了一些 GUI 框架并被拒绝后 我决定自己编写一个 GUI 框架他们全部 由于这是一个业余爱好项目 我也愿意尝试 并决定将 GU
  • 在 MySQL 中对整数字段运行带引号的数字(字符串)查询时会发生哪些复杂情况

    在 SQL 中 不应引用整数 因为如果引用 它将是一个字符串 但我很好奇如果我这样做会出现什么问题 并发症 例如 SELECT FROM table WHERE id 1 正确的 vs SELECT FROM table WHERE id
  • MySQL 8 用逗号分割字符串并将其转换为JSON ARRAY

    我有以下字符串 a b c d 我想将它转换成一个 json 数组 像这样 a b c d MySQL 8 有什么函数可以实现这个功能吗 Try SELECT CAST CONCAT REPLACE a b c d AS JSON See
  • 合并两个 MYSQL SELECT 查询[重复]

    这个问题在这里已经有答案了 可能的重复 如何将两个 Post Category 表 MYSQL SELECT 查询合并为一个 https stackoverflow com questions 12972130 how to combine
  • 只获取倒数第二条记录 - mysql-query

    我有一个如下表记录 my table id rating description 1 0 0 bed 2 1 0 good 3 0 0 bed 4 1 0 good 5 0 0 bed 6 0 0 bed 7 0 0 bed 现在我通过评级
  • 不带 GROUP BY 的聚合查询

    这个查询似乎在我的旧机器上完美运行 但是 在我的 MySQL 5 7 14 和 PHP 5 6 25 的新机器上 它会抛出错误 致命错误 未捕获异常 PDOException 并带有消息 SQLSTATE 42000 语法错误或访问冲突 1
  • 高效秒表

    您好 我正在用 javascript 编写一个秒表实用程序 我有一个关于效率和开销的问题 我考虑过两种制作秒表的方法 1 存储开始日期并不断测量自该日期以来经过的毫秒数 2 创建一个整数并按设定的时间间隔递增其值 我想知道哪个最有效 另外
  • 为什么动态 qml 对象的创建如此缓慢,有哪些合理的替代方案?

    我想要实现的目标类似于棋盘游戏 有一个100 100的网格 放在一个Item它驻留在一个Flickable 游戏板 的各个矩形都是 svg 图像 目前大约有 20 种 可能会增加到数百种 作为基准测试 我只是尝试用元素填充 世界 Compo
  • Gtk/GtkD 在窗口调整大小时检测鼠标按钮的释放?

    我正在尝试改进我用 GtkD Gtk 的 D 绑定 编写的绘图库 具有很多点的散点图需要很长时间才能调整大小 我想重新缩放图像 允许像素化 同时用户拖动窗口边缘来调整大小 并且仅在释放鼠标按钮时重新渲染它 是否有 API 可以检测在调整窗口
  • 让登录更安全

    我已使用此代码进行管理员登录 仅当用户输入正确的用户名和密码时才应打开loginhome php 但后来我意识到这根本不安全 任何人都可以直接访问 mywebsite loginhome php 而无需登录 注销后 可以使用后退按钮打开 l
  • 在 SQL 中,如何从 SELECT * FROM ... 中排除结果?

    我知道我的标题不太具有描述性 让我在这里详细解释一下 假设一个表有 26 个字段 例如字段 a 字段 z 我只想要一个选择查询只返回 15 个字段 所以 通常 我会执行 SELECT field a field b field o FROM
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • 多处理器机器中秒表的最佳实践?

    我找到了一个好的question https stackoverflow com questions 28637 is datetime now the best way to measure a functions performance
  • 如何知道Matlab中系统命令执行过程中经过的时间?

    我有一个运行系统脚本的 Matlab 代码 该脚本可能会因命令运行而停止 我想知道是否有一种方法可以让程序知道它是否花费了很长时间并执行其他操作 这是代码 tic status cmdout system iperfcmd The prog
  • Mysql插入表后不显示右单引号(’)

    我有一个名为 测试 的表 我插入了一行 其中包含unicode字符右单引号 0x2019在名称字段中 SQL insert into Testing values Sno Name Address insert into Testing v
  • 通过触发器应用表的列权限

    现在 我有一个名为 Members 的表 其中包含内容 分为联系人数据 银行数据 现在 管理员应该能够创建 更新 删除用户 这些用户保存在另一个表中 该表只能访问管理员 用户应该获得自己的 mysql 用户帐户 管理员还应该能够设置权限 例
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么

随机推荐

  • 使用 MFMailComposer 通过电子邮件发送 CSV 文件

    我想使用带有 csv 扩展名的 NSString 已创建 创建一个文件 然后使用 UIMessage 框架通过电子邮件发送该文件 那么有人可以向我展示创建文件的代码 带有 csv 扩展名和 NSString 的内容 然后如何将其附加到 MF
  • react-native:共享 api,将 base64 字符串而不是图像传递给 WhatsApp

    嘿 我正在努力通过 WhatsApp 分享 Base64 图像 在 iOS 和 Android 中 共享的是实际的基数 64 而不是图像 如果我使用 iMessage 或电子邮件 iOS base64 图像将按预期转换并显示 在 Andro
  • 使用内嵌引号将 JSON 导入到 R 中

    我正在尝试将以下 JSON 文件 my file json 读入 R 其中包含以下内容 id 484 comment They call me Bruce 使用 jsonlite 包 0 9 12 出现以下错误 library jsonli
  • Actionbarsherlock searchview:setOnQueryTextListener

    我正在尝试使用 ActionBarSherlock 的搜索视图在列表中创建一个过滤器 我目前拥有的代码如下 Override public boolean onCreateOptionsMenu final Menu menu getSup
  • 二变量多项式的霍纳规则

    霍纳规则用于简化在特定变量值下评估多项式的 过程 https rosettacode org wiki Horner 27s rule for polynomial evaluation Standard ML 我已经使用 SML 轻松地将
  • 降低 R 中双打的精度

    我正在寻找一种方法 通过使用基本 R 工具而不求助于 C 或 C 始终忽略 R 中浮点数之间的微小差异 这些是根据 IEC 60559 的双精度浮点数 换句话说 我想 四舍五入 双精度浮点数的有效数字部分 这样就可以返回 TRUE 而不是
  • 努力尝试在 .net 4.5 中使用 HttpClient 获取 cookie 响应

    我有以下代码可以成功运行 我不知道如何从响应中获取 cookie 我的目标是我希望能够在请求中设置 cookie 并从响应中获取 cookie 想法 private async Task
  • 如何增加 JFileChooser 的大小?

    我正在编写一个 Java 应用程序 需要在屏幕分辨率非常高的设备上运行 我需要显示的唯一 UI 组件是 JFileChooser 由于屏幕分辨率太高 FileChooser 显得太小 有没有一个简单的命令可以让它变大 理想情况下 我希望保持
  • 如何在 PowerShell 窗口中更改两个引号之间的文本颜色

    我无法更改两个引号之间的文本颜色 现在它的颜色是暗蓝色 我可以在哪里设置此设置或者我必须执行哪个命令 sample PSReadline v1 x 发货时附带Windows PowerShellWindows 10 及更高版本上的 v5 1
  • PHP 数据对象插入未执行

    我的 PHP 表单刚刚更改为使用 PDO 我唯一能告诉的是执行不起作用 我应该用它传递一些东西吗 db new PDO mysql host localhost dbname x charset utf8 x x if db die Cou
  • 为什么 strcmp 在 c 中不起作用? [复制]

    这个问题在这里已经有答案了 我刚刚开始学习 c 我想尝试 strcmp 函数 但如果我运行它 它总是给我结果 1 我输入什么字符串并不重要 由于第一个字符串比第二个字符串短 因此我期望结果为 1 include
  • 准备 JNA 以在 Eclipse 中使用

    背景 我正在做机器学习研究 并且想使用FANN构建神经网络的库 源代码是用 C 编写的 但我需要对其进行包装 以便我可以将它与我们创建的许多 Java 类一起使用 问题 该网站提供了一个已广受好评的名为 fannj 的包装软件的链接 它的依
  • 变量和打印变量之间的区别[重复]

    这个问题在这里已经有答案了 我有以下代码 假设我正在 IDLE 中逐行输入 coding utf 8 s u My Currency is s print s for s 我得到一个输出 u My Currency is xa3 for p
  • 如何防止JasperReports TextField中的重复数据

    我在用贾斯珀报告文本字段数据存在一些问题 请继续下一页 我在详细信息带中有 3 个文本字段 带 splitType 拉伸 每个文本字段都有边框 并且 isPrintWhenDetailOverflows 参数设置为 true 当文本字段中的
  • 内部编译器错误:总线错误

    我试图制作一个带有详细信息视图的 UITableView 但出现两个错误 在以下代码之后 我得到了两次相同的错误 内部编译器错误 总线错误 我不知道为什么 有人能帮我吗 您可以在下面找到代码的图像here void tableView UI
  • ASP.NET:为什么身份验证超时后 FormsAuthenticationTicket 为空?

    我正在根据我之前的问题和答案实现身份验证超时检测机 制here 我已经实现了一个 HTTP 模块 该模块使用 AuthenticateRequest 事件来运行代码来捕获身份验证期限是否已过期 执行此操作的代码如下 public class
  • Python - 是否可以在 Discord.py-v1.0 中 wait_for 一个或另一个事件?

    有没有可以用的wait for以这样的方式 它将等待reaction add or reaction remove 我见过有on reaction add and on reaction remove功能 但我想要一种没有这些功能的方法 我
  • 在android中将音频注入语音流

    我有一个想法 为愚蠢的人构建一个 Android 应用程序 可以帮助他们接听电话 我想将文本转换为语音 然后通过通话流传输 在android平台上 仍然无法播放音频以便对方在通话过程中听到吗 抱歉 简短的回答似乎仍然是否定的 我很乐意在这一
  • 将 Visual Studio Code 连接到远程 Mysql 数据库

    我知道这应该更加集中 但我为此浪费了一整天的时间 我无法弄清楚 我正在尝试使用任何可用的 VS Code 扩展连接到远程 MySQL 数据库 我尝试使用SQLTools with MySQL MariaDB 插件 适用于 VS Code 的
  • mysql 按计数排序性能

    我发现以下内容有点令人困惑 如果我执行以下查询 当按索引值 关键字 排序时 需要 0 0008 秒 但当按 计数 排序时 需要 3 秒以上 以下过程大约需要 0 0008 秒 SELECT keyword COUNT DISTINCT pm