302得票15回答
MySQL能否合理地处理数十亿行的查询?

我计划将质谱仪的扫描存储在MySQL数据库中,并想知道存储和分析这么大量的数据是否可行。我知道性能因环境而异,但我想知道大致的数量级:查询需要5天还是5毫秒? 输入格式: 每个输入文件包含一个质谱仪的运行;每个运行由一组扫描组成,每个扫描都有一个有序的数据点数组。有一些元数据,但文件的主要...

170得票12回答
二进制文件是否应该存储在数据库中?

哪个是存储与数据库中的数据相关的二进制文件的最佳位置?您应该选择: 1. 使用Blob在数据库中存储 2. 在文件系统中存储,并在数据库中添加链接 3. 存储在文件系统中,但将文件重命名为其内容的哈希,并将哈希存储在数据库中 4. 我没有考虑过的其他方式 (1)的优点(还有其他)是保持了事...

147得票3回答
使用枚举类型和整数类型的优缺点是什么?

假设在某个随机的表中,你有一个名为“status”的列。它的实际值可以是“enabled”或“disabled”。 对于这个列的数据类型来说,使用int/bool(1或0)还是使用ENUM,其中值为“enabled”和“disabled”,哪种方式更好?有什么优点或缺点? 假设不仅仅有两个...

142得票8回答
为什么我们不应该允许NULL值?

我记得读过一篇关于数据库设计的文章,它提到应该将字段属性设置为NOT NULL。但是我忘记了为什么要这样做。 我能想到的唯一原因是,作为应用程序开发人员,你不需要测试NULL和可能不存在的数据值(例如,字符串为空字符串)。 但是在日期、日期时间和时间(SQL Server 2008)的情况...

139得票3回答
我该如何在PostgreSQL中为新列指定位置?

如果我有一个带有列的表: id | name | created_date 我想添加一列,我使用以下代码: alter table my_table add column email varchar(255) 然后在created_date列后添加列。 我能否指定新列的位置?例如...

123得票3回答
一个综合指数对于第一个字段的查询也有效吗?

假设我有一个包含字段A和B的表。我经常对A+B进行查询,所以我创建了一个复合索引(A,B)。那么仅对A进行的查询是否也会被复合索引完全优化? 此外,我还为A创建了一个索引,但是Postgres在仅对A进行查询时仍然使用复合索引。如果前面的答案是肯定的,我猜这并不重要,但是为什么默认选择复合索...

119得票5回答
最佳的数据库和表设计,适用于数十亿行数据。

我正在编写一个应用程序,需要存储和分析大量的电力和温度数据。 基本上,我需要存储过去几年以及未来很多年里数万个地点的大量每小时用电量测量数据,并以不太复杂的方式分析这些数据。 我目前需要存储的信息包括:位置ID、时间戳(日期和时间)、温度和用电量。 关于需要存储的数据量,这只是一个近似值...

109得票5回答
存储与计算聚合值

有没有什么准则或经验法则可以确定何时存储聚合值,何时在需要时计算它们? 例如,假设我有一个用户可以评分的小部件(请参见下面的模式)。每次显示小部件时,我可以从“Ratings”表中计算出平均用户评分。另一种选择是将平均评分存储在“Widget”表中。这样可以避免每次显示小部件时都要计算评分,...

82得票10回答
在数据库层中放置应用逻辑的论点有哪些支持或反对的观点?

注意:程序员.se和dba.se的受众不同,观点也会有所不同,所以在这种情况下,我认为在程序员.se上复制将应用逻辑放在数据库层中的论点是什么?是合理的。 我在dba上找不到关于这个问题的讨论,原始帖子已经说得很清楚了,所以: 大多数软件开发人员希望将应用逻辑保留在应用层,对我们来说,在这...

80得票6回答
在PostgreSQL中,存储电子邮件地址的最佳方式是什么?

在PostgreSQL中,存储电子邮件地址的正确数据类型是什么? 我可以使用varchar(甚至text),但我想知道是否有更具体的电子邮件数据类型。