问题标签 [database-performance]

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 回答
1020 浏览

database - PostgreSQL on RamDisk: Size of work_mem etc.?

I am experimenting with running PostgreSQL on a ramdisk on windows. The way I did it was to simply place the data directory on the ramdisk.

Without having done any specific benchmarks, the performance seems to be magnificent and only CPU bound. My question is what the optimal values for things like work_mem, shared_buffers etc. would be?

Even when the database is in ram it take more than half a minute to run many of my queries. Therefore, I wonder whether it makes sence to create indexes on the table. The indexes would, of course, need to stay in ram. I should mention that I am using PostgreSQL for a data warehouse (small one, though).

Edit: I should mention that I am using the RamDisk utility from DataRam.com. It only gives me a bluescreen once in a while, when I configure the ramdisk, never when it is established. I think of this as nostalgic eyecandy. ;)

0 投票
2 回答
263 浏览

c# - 业务层设计困境:内存还是IO?

我正在从事的项目面临着如何从数据库中获取对象和对象集合的设计困境。有时将数据库中的*​​ 所有*对象及其属性缓冲到内存中很有用,有时只需设置对象 id 并按需查询其属性(每个对象调用 1 db 以获取所有属性)很有用。在许多情况下,集合需要支持将对象缓冲到内存中并使用最少的信息进行初始化以进行按需访问。毕竟,并非所有内容都可以缓冲到内存中,也不是所有内容都可以按需读取。这是一个普遍存在的内存与 IO 问题。

有没有人必须面对同样的问题?对您的设计有何影响?有哪些惨痛的教训?还有其他想法和建议吗?

编辑:我的项目是业务层 dll 的经典示例,由 Web 应用程序、Web 服务和桌面应用程序使用。当桌面应用程序请求产品列表并仅按产品名称显示时,可以使用以下步骤顺序显示所有产品(假设数据库中有一百万种产品):
1. 一次 db 调用获取所有产品名称
2. 如果用户单击产品以查看详细信息,则一次 db 调用以获取所有产品信息(按需访问)

但是,如果 Web 服务将使用相同的 API 来显示所有产品的详细信息,那么网络流量将变得混乱。在这种情况下,更好的顺序是:
1. 到底是什么,从一个数据库调用中缓冲所有产品和产品字段(在这种情况下缓冲 100 万个产品看起来也很可怕)

0 投票
2 回答
289 浏览

database - Shared Access 2003 数据库性能

我必须创建一个 Access 2003 数据库并在 100 个用户之间共享,用户不会进行任何修改,只查看使用主机上的计划任务每​​天(和一次)生成的几个报告。

在这种情况下,同时 100 个用户会破坏性能吗?

你对这个工作流程有什么建议?

排除:

  • 使用数据库服务器(sqlserver,...等)不在主题范围内
  • 我已经考虑过将报告输出为静态 html,但现在我想首先评估整个数据库的共享(因为可能需要过滤功能)
  • 我想避免复制
0 投票
7 回答
1828 浏览

mysql - 多表还是单表?

我已经看过一些关于这个问题的论坛,但他们没有回答我想知道的一件事。我将首先解释我的主题:

我有一个系统,其中多个用户的每个日志都输入到数据库中(例如,用户 1 登录,用户 2 登录,用户 1 进入用户管理,用户 2 更改密码等)。所以我预计每个用户每天有 100 到 200 个条目。现在,我在一个表中执行它并查看它,我只需要使用 UserID 过滤掉。

我的问题是,哪个更有效?我应该使用一个表还是为每个用户创建一个表?

我担心如果我使用单个表,系统可能会在过滤数千个条目时遇到一些困难。我已经阅读了使用多个表和单个表的一些优缺点,尤其是在更新表方面。

我也想知道哪个更省空间?多表还是单表?

0 投票
6 回答
11027 浏览

mysql - 具有复杂查询匹配模式的 MySQL 与 PostgreSQL 性能

我有一个复杂的数据库,大约有 30 个表。一个表有超过 500,000 行,另一个超过 15,000 行,我在一个单独的数据库中使用这两个表,直到今天我决定只在一个数据库中实现。

在今天之前,500,000 行的表在 MySQL 数据库中,而 15,000 行的表在 PostgreSQL 中。在大量使用的页面中,这是 PHP 基准测试的结果:

在我将所有内容迁移到 PostgreSQL 并使用相同的 SQL 代码而不做任何更改后,同一页面的结果是这样的:

我把所有东西都放在 MySQL 中,相同的索引,所有东西,但我不明白为什么会有这么大的差异。我应该做些什么来优化这个?

编辑:现在更好地解释。

500.00 表由以下结构组成:

主要查询是这样的:

EDIT2:使用复杂的单个查询进行测试,我将其从 15 秒减少到 8/9 秒。即便如此,这对我来说也太过分了。

0 投票
2 回答
735 浏览

sql-server-2008 - SQL Azure 性能注意事项

在规划 SQL Azure 应用程序时,我应该牢记哪些性能注意事项?Azure 存储、工作人员和 Web 角色看起来非常可扩展,但如果最终他们使用一个数据库......它看起来像是瓶颈。

我试图找到有关以下内容的数字:

  1. SQL Azure 支持多少并发连接?
  2. 哪个是带宽?

但没有运气。

例如,我正在计划和应用程序使用非常高级别的插入,但我每次都需要返回聚合函数的结果(例如:列中具有相同键的所有记录的总和),所以我不能与桌子存储一起去。

批处理是一种选择,但时间响应也很关键,所以我担心数据库会因大量连接而膨胀。

分片是另一种选择,但即使插入量很大,数据量也很小,4到6列有一个PK,没有FK。因此,对于分区来说,即使是 1Gb 的数据库也是一种过度杀伤(和多付:D)。

当我面对这类应用程序时,我应该牢记哪些性能关键?

干杯。

0 投票
1 回答
204 浏览

mysql - 想学习改善慢mysql查询

我有一个 MySQL 查询来选择所有产品 ID,并将某些过滤器应用于产品。此查询有效,但我想学习改进此查询。欢迎使用此查询的替代方案并提供解释。

我已经包含了查询中使用的表的结构。

解释kkx_filters

解释kkx_filters_products

解释kkx_products

0 投票
3 回答
1266 浏览

database - 多台服务器上的 Postgresql

假设有很多用户同时访问一个 postgresql 数据库。假设数据库位于仅包含 postgresql 的专用服务器上。数据库会保存吗?100 个用户?1000?

另一个问题:如果我想让它保持不管有多少用户,是否有一种内置的方法可以将数据库分离到多个服务器上,或者我是否必须通过安装几个 postgresql 服务器并拆分数据来自己编程分离?

编辑:我的意思是交易,而不是规模。我要运行的查询是简单的插入和连接选择。

0 投票
1 回答
94 浏览

database-performance - 如何测试数据库行为?

亲爱的,是否有任何可用的工具可以通过向数据库发送一些示例数据来检查系统中的所有数据库,以确保数据事务正确发生。此外,样本数据应该是不可见的,也不能从外部世界访问。如果您有任何想法,请提供帮助。

更新

谢谢您的回答。但是我对您给出的答案有一些疑问。

  • 上述解决方案是否适用于 MySQL 和 SQLite?
  • 如果是这样,那么在哪里打开 database.txt 文件?

顺便说一句,我使用 WampServer2 作为系统,我的数据库是 MySQL

0 投票
2 回答
3200 浏览

android - Android 中外部存储的 SQLite 性能不佳

我正在使用外部存储将事件存储在数据库中,同时等待将它们发送到服务器。

插入记录时,我看到性能非常差。我知道外部存储器可能很慢,但我想看到一些数字,所以我写了一个小应用程序来测试它。

这是代码:

该数据库与我的真实应用程序使用的数据库完全相同,我尝试删除索引,但没有任何区别。

结果如下:

如您所见,模拟器不能被信任,InsertHelper如果有的话应该更快。
当然,这是意料之中的,测试主要是出于好奇。

然而,我担心的是我的手机在使用外部存储器时性能不佳,我是否错过了一些关键方面,SQLiteDatabase或者仅仅是因为 SD 卡会变慢?

我可以在我的真实应用程序中添加它,我禁用了锁定,它几乎没有什么区别。