Questions tagged «testing»

4
您如何测试数据库中的竞争条件?
我尝试编写数据库代码以确保它不受争用条件的影响,以确保锁定了正确的行或表。但是我经常想知道:我的代码正确吗?是否可以强迫任何现有的竞赛条件表现出来?我想确保,如果它们确实发生在生产环境中,我的应用程序将做正确的事情。 我通常确切地知道哪个并发查询可能会导致问题,但是我不知道如何强制它们并发运行以查看是否发生了正确的行为(例如,我使用了正确的锁类型),正确的错误是抛出等 注意:我使用PostgreSQL和Perl,因此,如果不能一概而论,就应该重新标记它。 更新:如果解决方案是程序化的,我希望使用它。这样,我可以编写自动化测试以确保没有回归。

4
您计划进行数据迁移的工作流程是什么?
在软件开发工作的最后阶段,我被吸引了很多次,并被告知诸如“好吧,我们已经拥有了所有这些新代码,并且需要更改表和迁移数据”。 似乎每次都是一次性的,最好的猜测。我觉得这是我作为DBA的最薄弱的技能。 我想了解一些用于接近,管理和测试数据迁移的模式。 请为我提供一些最佳实践和/或在哪里可以获取学习材料的帮助,以帮助我在这一领域变得更好。

1
对于相同的模式/查询,MySQL和PostgreSQL之间的性能差异[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我是一名新手DBA,并且我在Microsoft SQL Server中有经验,但是我想跳到FLOSS。 我正在建立一家公司,我们用Postgres后端开发了一个应用程序(PHP),并且还进行了一些与MySQL比较的测试。我们观察到MySQL的速度是PostgreSQL的两倍。 我进行了明显的性能测试: 表中的相同列,具有等效的列数据类型。 行数相同。 两者中的索引相同(包括主键)。 CPU负载处于空闲状态,而Postgres机器则要好得多。 和相同的查询(显然)。 我究竟做错了什么? PS:我阅读了许多有关数据库引擎性能调整的“ howtos”。 PS(2):我们在MySQL数据库上使用InnoDB(每个表一个文件)。 嗨,垫子! 我做了三个常见的选择(也是最难的)查询。 关于磁盘的问题,肯定是不一样的。在Postgres中,它是SSD(快三倍)。 MySQL缓存数据: +------------------------------+----------------------+ | Variable_name | Value | +------------------------------+----------------------+ | binlog_cache_size | 32768 | | have_query_cache | YES | | key_cache_age_threshold | 300 | | key_cache_block_size | 1024 | | key_cache_division_limit …


3
测试存储过程的可伸缩性
我有一个电子邮件应用程序,将在每个页面加载时调用该应用程序以将给定用户的新消息数传送到UI。我在数据库级别测试的东西有一些变体,但是所有这些都通过存储的proc调用抽象出来。 我试图猛击数据库以查看断点(每秒请求数)。 简而言之,我有一个表,如此userId,newMsgCount,以及对userId的聚集索引。SQL应该每秒能够处理数百或数千个此类响应。我认为落后者是我的.NET应用程序。 我怎样才能使它成为一个很好的测试,以基于SQL性能获得测试结果? 是否有为此工具,我可以为其提供存储的proc名称和参数以将其打包到数据库中? 我想看看数据库是否可以返回分钟。每秒250个响应。

4
有哪些工具可以为SQL Server生成测试数据?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 从我的另一个问题中可以看到,生成测试数据是我现在的主题。 此时,我仍在手动生成测试数据。但是,由于此过程是手动过程,因此始终会生成少量数据(通常为五行)。 是否有任何工具可以自动执行此过程?特别是,我希望能够生成100万条以上的行。

9
有哪些数据屏蔽工具?(MySQL,Linux)
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 5年前关闭。 我正在寻找(理想情况下是免费的,开源的)数据屏蔽工具。有这样的存在吗? 注意:这个相关问题涉及用于生成测试数据的工具,但是在这个问题中,我对从真实数据开始并对其进行遮罩以便在测试中使用更感兴趣,而不会丢失任何使其出于测试目的变得有趣的特殊关系。生成的数据可以用于某些测试目的,但是实际数据会带来您从未想到的问题。 生成测试数据大型数据集的工具
14 mysql  linux  testing 

2
不测试一项功能还可以吗?
您是否在任何时候都对语言/数据库/系统如此熟悉,从而无需测试新功能/配置/查询/等。在系统中实施之前进行了包含/模拟的测试(特别是涉及修改数据的功能)?还是在测试环境中通过仿真测试新查询总是必不可少的吗? 为了进一步说明,很显然,测试始终是最安全的。但是,是否有办法确定何时风险很小,以至于不值得进行测试?措辞的另一种说法是:什么时候或曾经有专业的实践来承担实施功能的风险? 另外,我们假设所有内容都已备份,因此,在最坏的情况下,可以轻而易举地恢复数据。 有人可以引用特定的专家经验来解决此问题吗?请在适当/可能的地方提供参考。

3
非IT人员的数据库登台环境
我正在向我的IT部门建议一个数据库登台环境。这个想法是,像我这样的非IT人员(公共工程数据分析师)将有一个测试解决方案的地方,然后自己在实际环境中实施解决方案,或者在需要时要求IT部门实施解决方案。有几种原因/场景可以使该环境受益: 在我们的实时数据库环境(,等)中create table,我具有一些基本的数据库特权create view。我大约每周进行一次模式更改,但是在实时环境中测试和实现这些更改似乎很疯狂。数据库上有无数的依赖关系,因此,如果出现问题,可能会造成灾难性的后果。我宁愿提前在单独的环境中进行测试。 我没有一些更高级的特权,如create trigger或create function在现场数据库。很好,但是我确实有一些可以通过触发器和/或函数解决的问题。我计划建议在登台环境中向我授予这些权限,以便我可以开发和测试一些想法,如果它们起作用,则建议IT在实时环境中实施它们。 通常,我的IT部门没有时间或资源为我开发解决方案。真的就是这么简单。因此,如果我可以自己做腿部工作,那么我的问题就更有可能得到解决。 “非IT人员的暂存环境”对我来说似乎是一种足够合理的方法,但是老实说,我只是想出了办法。我不知道在IT /数据库世界中通常是如何完成的。 是否有适合这种情况的已建立的IT /数据库实践?(为非IT人员提议数据库登台环境时,我走的路正确吗?)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.