mysql - 分组、排序和计数 MySQL 性能
问题描述
我有下一个查询要在一个地方获得 15 个最畅销的盘子:
此查询需要 12 秒来执行超过 100,000 行。我认为这个执行时间太长了,所以我正在寻找一种优化查询的方法。
我在 PHPMyAdmin 上运行了解释 SQL 命令,我得到了这个:[![在此处输入图像描述][1]][1]
据此,主要问题出在扫描整个表的 p 表上,但我该如何解决呢?p表的id是主键,是否也需要设置为索引?另外,我还能做些什么来使查询运行得更快吗?
解决方案
您可以在两个表之间建立关系。 https://database.guide/how-to-create-a-relationship-in-mysql-workbench/
除此之外,您还可以使用左连接,这样您就不会加载整个右表。Order by 在 MySQL 中是一个缓慢的功能,如果您之后使用代码,您可以在比 order 快得多的代码中执行它经过。
我希望我有所帮助,社区可以随时编辑:)
推荐阅读
- c# - 如何从委托中获取函数内存地址
- c# - 通过静态类更改图像源的问题
- algorithm - m路树和m路搜索树的区别
- xamarin - Appium WebView 始终呈现为 NATIVE_APP(iOS 和 Android / Xamarin)
- python - cx_freeze - 通过创建的程序的 GUI 运行 ffmpeg.exe 或 ffplay.exe 时打开命令窗口 - 如何隐藏它?
- nginx - Nginx/Lua 行为异常
- angular - Angular - 如果选中复选框,则显示组件。每个复选框都有单独的组件
- powerbi - 来自子组的总数百分比 - Power BI
- c++ - 具有“即插即用”功能的 C++ 类
- swift - 删除行后更新 indexPath 值