query-optimization相关内容

6000万个条目,选择某个月份的条目.如何优化数据库?

我有一个包含 6000 万个条目的数据库. 每个条目都包含: 身份证 数据源ID 一些数据 日期时间 我需要选择某个月份的条目.每个月包含大约 200 万个条目. 选择 *从条目“2010-04-01 00:00:00"和“2010-05-01 00:00:00"之间的时间 (查询大约需要 1.5 分钟) 我还想从给定的 DataSourceID 中选择某个月份 ..
发布时间:2021-11-20 22:12:50 数据库

mysql 从最后 n 行中选择

我有一个带有索引(自动增量)和整数值的表.该表有数百万行长. 如何最有效地搜索某个数字是否出现在表格的最后 n 行? 解决方案 从答案 由@chaos 给出,但有一些修改: 如果您使用 LIMIT,则应始终使用 ORDER BY.RDBMS 表不保证隐式顺序.您可以通常按照主键的顺序获取行,但您不能依赖于此,也不能移植. 如果按降序排序,则无需事先知道表中的行数. ..
发布时间:2021-11-20 21:57:35 数据库

带有 EXISTS 与 IN 的子查询 - MySQL

下面两个查询是子查询.两者都是一样的,对我来说都很好.但问题是方法 1 查询执行大约需要 10 秒,而方法 2 查询需要不到 1 秒. 我能够将方法 1 查询转换为方法 2,但我不明白查询中发生了什么.我一直试图自己弄清楚.我真的很想了解以下两个查询之间的区别以及性能提升是如何发生的?它背后的逻辑是什么? 我是这些先进技术的新手.我希望有人能帮助我.鉴于我阅读了 docs 这没有给我任 ..
发布时间:2021-11-20 21:48:19 数据库

MySQL 索引 - 最佳实践是什么?

我已经在我的 MySQL 数据库上使用索引有一段时间了,但从未正确了解它们.通常,我会使用 WHERE 子句在我将要搜索或选择的任何字段上放置索引,但有时它看起来并不那么黑白分明. MySQL 索引的最佳实践是什么? 示例情况/困境: 如果一个表有六列并且所有列都可以搜索,我应该索引所有列还是不索引? 索引对性能有哪些负面影响? 如果我有一个 VARCHAR 2500 ..
发布时间:2021-11-20 21:43:21 数据库

JOIN 查询与多个查询

JOIN 查询是否比多个查询更快?(您运行主查询,然后根据主查询的结果运行许多其他 SELECT) 我这么问是因为加入它们会使我的应用程序的设计复杂化 如果它们更快,有人能粗略估计大约多少吗?如果是 1.5 倍我不在乎,但如果是 10 倍我想我会. 解决方案 这太模糊了,无法为您提供与您的具体案例相关的答案.这取决于很多事情.Jeff Atwood(本网站的创始人)实际上 写道 ..
发布时间:2021-11-20 21:33:52 数据库

如何在 MySQL 中进行递归 SELECT 查询?

我得到了下表: col1 |col2 |第 3 列-----+------+-------1 |一个|55 |d |33 |k |76 |○ |22 |0 |8 如果用户搜索“1",程序将查看具有“1"的 col1 然后它会在 col3 中得到一个值“5",然后程序会继续在col1中搜索“5",在col3中会得到“3",以此类推.所以它会打印出来: 1 |一个|55 |d |33 |k |7 ..
发布时间:2021-11-20 21:08:37 数据库

了解火花物理计划

我正在尝试了解 Spark 上的物理计划,但我不了解某些部分,因为它们似乎与传统的 rdbms 不同.例如,在下面的这个计划中,它是一个关于对 hive 表进行查询的计划.查询是这样的: 选择l_returnflag,l_linestatus,sum(l_quantity) 作为 sum_qty,sum(l_extendedprice) 作为 sum_base_price,sum(l_exten ..

MySQL:优化查询以从一组字符串中查找匹配的字符串

我有 10 组琴弦,每组有 9 根琴弦.在这 10 组中,第一组中的所有字符串的长度为 10,第二组中的所有字符串的长度为 9,依此类推.最后,第 10 组中的所有字符串的长度均为 1. 每个集合中有(长度-2)个字符的公共前缀.并且前缀长度在下一组中减少1.因此,第一组共有 8 个字符,第二组共有 7 个,依此类推. 以下是 10 个集合的示例: pu3q0k0vwnpu3q0k0 ..
发布时间:2021-06-30 19:25:16 数据库

如何禁用 PostgreSQL 的所有优化

我正在研究查询优化,想知道每种优化对查询的帮助有多大.上次,我得到了一个答案,但是在我的实验,禁用链接中的所有优化的时间复杂度为 O(n^1.8) 启用所有优化的时间复杂度为 O(n^0.5).没有太大区别,如果全部禁用,还有其他优化吗?我怎么真的每次只有一个主要优化? 解决方案 你不能. PostgreSQL 的查询计划器没有“关闭优化"标志. 添加它会很有趣,但会使回归测试 ..
发布时间:2021-06-30 19:25:10 其他开发

运行总计直到特定条件为真

我有一张表,代表庄家的牌和他们的等级.我现在正在尝试进行查询(尽可能快)以设置游戏状态. (如前所述,只显示经销商卡)W = 赢S = 站立L = 损失B = 二十一点(两张牌) 关于规则:庄家在 21 点获胜,如果是两张牌,则为 21 点.如果排名在 17 到 20 之间,则为 S = Stand.超过 21 是一种损失. 排名: 1 (ACE) - 1 或 11 级.计为 11 ..
发布时间:2021-06-30 19:25:02 数据库

查询效率 - 从表中选择 2 个最新的“group/batch"记录

我们测试了一个非常有趣的 SQL 查询.不幸的是,事实证明这个查询运行有点慢 - O(n2) - 我们正在寻找一个优化的解决方案,或者也可能是一个完全不同的解决方案? 目标: 我们想获得:- 一些客户(“record_customer_id"),例如身份证 5- 最新的 2 个“record_init_proc_id"- 对于每个“record_inventory_id" http:// ..

在其他连接的 select 语句中优化联合连接

我有一个由 3 -4 部分构建的查询.一旦我添加了带有 join 的 union 连接,这需要超过 140 秒才能运行.如何更改联合连接以更快地执行它. SELECT测试.CLIENTID,测试公司,测试.联系,测试.CONTACTID,`订单`.`ORDERNO`作为`ORDERNO`,`订单`.`BIDNO`作为`BIDNO`,`projects`.`PROJID` 作为 `PROJID`, ..
发布时间:2021-06-30 19:24:48 数据库

优化一个奇怪的 MySQL 查询

希望有人能帮忙解决这个问题.我有一个查询,它从 PHP 应用程序中提取数据并将其转换为用于 Ruby on Rails 应用程序的视图.PHP 应用程序的表是一个 E-A-V 样式的表,具有以下业务规则: 给定字段:名字、姓氏、电子邮件地址、电话号码和手机运营商: 每个属性都定义了两个自定义字段:一个是必需的,一个不是必需的.客户端可以使用任何一种,不同的客户端根据自己的规则使用不同的 ..
发布时间:2021-06-30 19:24:42 数据库