问题标签 [database-optimization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
589 浏览

python - Django - 非常慢的查询

我制作了一个模块,它解析 xml 文件并在 django db (pgsql) 中更新或创建数据。

数据导入/更新完成后,我尝试更新我的对象的一些元数据。

我将 django-mptt 用于树结构,而我的元数据更新器用于在我的对象之间创建这样的结构。

用来自其他外键的数据填充父级需要大约 1 秒的时间真的很慢。

我该如何优化呢?

编辑:

我像这样更新了第一个函数:

0 投票
3 回答
81 浏览

mysql - 在mysql中使用条件和where条件优化group by

我有一个大约 8M 行和 35 列的表(总体大小为 1G)。这用于涉及多级group by条件的报告。这是一个这样的查询。

这需要大约 1.8 秒来执行。主键打开c,d并用于评估 where 子句。count(*)具有相同 where 条件且没有 group by的查询返回大约 150000 行。所以在实际查询中扫描的行也是可以的。但是,没有一个索引被用于对结果进行分组。我试过把索引放在cand上c,e

我的问题是,一旦应用了条件并且结果集在 tmp 表中,是否可以使用另一个索引进行排序/分组。

我已经分配了足够的内存给tmp_table_size. 因此,tmp 表肯定不会磁盘。该表正在使用MyISAM.

0 投票
2 回答
492 浏览

mysql - InnoDB 有静态表吗?

我正在阅读 MySQL 文档,我想知道MyISAM 的“静态”表格式是否也适用于 InnoDB?如果我使用CHAR而不是VARCHAR实际长度在 0 到 100 个字符之间变化或使用VARCHAR(100)更好,我是否会获得性能?

0 投票
1 回答
165 浏览

mysql - 优化mysql配置?

我有一个每天访问量超过 10 万的网站。我们使用 MySQL 5.1。

在高峰时段为所有这些访问者提供服务并记录他们的数据给我们的服务器带来了很大的负担。

我刚刚将我们的服务器升级到 EC2/c3.8xlarge,vCPU=32,ECU=108,内存=60G

关于我应该如何设置我的 mysql 配置以优化我们的使用的任何建议?

我知道这是一个非常广泛的问题,并且取决于负载的性质,答案可能会有所不同,但我很感激任何建议。

0 投票
1 回答
579 浏览

mysql - 更快 LIKE '%XXX'

在 MySQL 中进行如下搜索:

即使对 LIKE 的列进行索引,速度也很慢。有什么技术可以加快速度吗?

我能想到的最好的主意是:

  1. 创建一个新列,将相关列颠倒过来。所以华盛顿 => notgnihsaW AND Jefferson => nosreffeJ

  2. 当您想要执行 LIKE '%ton' 搜索时,反转您的后缀,例如 ton > not,然后在您的新列上执行 LIKE 'not%' 搜索。

这是一个简单的解决方案,但每次添加新数据时都需要重新编译反转列。

0 投票
1 回答
905 浏览

sql - PostgreSQL 中的高效更新语句

我在 PostgreSQL 9.3 数据库中有一个大表(大约 10M 条记录),我正在尝试运行一个简单的更新语句:

它已经运行了一个多小时,看不到任何尽头。

但是,我知道:

它在几秒钟内运行,它只会影响 7000 条记录。

为什么我的更新需要这么长时间?我的数据库中没有任何触发器,并且该fresh列的索引为:

运行EXPLAIN UPDATE mytable SET fresh = null WHERE fresh = true给出:

我是否正确,它正在扫描所有 950 万条记录而不使用索引?如果是这样,我该如何解决这个问题?

编辑:我的fresh列是可为空的布尔类型。我为该true值添加了一个部分索引,这大大加快了它的速度(22 毫秒)。不确定为什么部分索引有效而通用索引被完全忽略。我发现 Postgres 中的这种利基行为很常见,并且对于大型数据仓库项目非常令人沮丧。

0 投票
2 回答
827 浏览

database - 为什么 Indexed Nested-Loop Join 只适用于 equi-join 或 natural join?

索引嵌套循环连接:

对于外部关系 R 中的每个元组 tr,使用索引查找 S 中满足与元组 tr 连接条件的元组

一些资料提到“Indexed Nested-Loop Join”仅适用于等连接或自然连接,并且内部关系的连接属性上有索引

假设我们在 b.col1 上有一个索引。

为什么索引嵌套循环连接不适用于这种情况?

0 投票
1 回答
50 浏览

mysql - Mysql表大小的优化

我正在考虑一个问题。

在 C 语言中,我们建议 struct 的大小应该是 2 字节的倍数。

情商:

因此,我想知道 MySQL 的记录大小(感谢 Gordon Linoff)是否遇到同样的问题?

此外,如何通过控制表大小来优化 MySQL?

0 投票
1 回答
1075 浏览

mysql - 数百万条记录的最佳数据库解决方案是什么?

实际上,我们使用的 MYSQL 数据库包含超过 15 000 000 条记录的表,因此我们注意到查询非常慢,这很正常 :D,但我们正在寻找优化我们的服务。

请记住,我们已经索引了所有需要的字段,并且我们使用 memcache 添加了一些帮助,我们的 SERVER Machine 具有以下配置:

model name : Intel(R) Xeon(R) CPU E5630 @ 2.53GHz

所以我的问题是:在同一案例中是否有任何人,最适合我的案例的 DBMS 是什么?

我很高兴收到您的建议。

谢谢你。

一切顺利。

0 投票
1 回答
100 浏览

optimization - 查询优化以减少执行时间

问题:下面显示的查询很慢,最短执行时间为 3.x 秒,并且随着“IN”子句中类别 ID 的增加,查询的执行时间超过一分钟。

询问:

查询说明——

请建议我如何重写查询以减少执行时间并使网站快速运行。

我试图改变数据库引擎。

请注意:查询已使用缓存。