我意识到,根据Pg文档(http://www.postgresql.org/about/),可以在表中存储无限数量的行.但是,如果有的话,可用行数的"经验法则"是什么?
背景:我想为1300万个细胞存储几十年的每日读数.这可以达到13 M*(366 | 365)*20~9.5e10,或95 B行(实际上,大约120 B行).
因此,使用表分区,我设置了一个主表,然后按年继承表.将行分为每个表约5.2 B行.
每行是9个SMALLINT,两个INT,因此,26个字节.除此之外,每行23字节的Pg开销,每行得49个字节.因此,每张表,没有任何PK或任何其他索引,将在~0.25 TB的重量.
对于初学者,我只创建了上述数据的一部分,即只有大约250,000个单元格.我必须做一堆调整(创建适当的索引等),但现在的性能真的很糟糕.此外,每次我需要添加更多数据时,我都必须删除密钥并重新创建它们.保存的优点是,一旦加载了所有内容,它将是一个只读数据库.
有什么建议?任何其他分区策略?
我给出了这样的日期字符串:
Mon Jun 28 10:51:07 2010
Fri Jun 18 10:18:43 2010
Wed Dec 15 09:18:43 2010
Run Code Online (Sandbox Code Playgroud)
什么是方便的python方式来计算天数的差异?假设时区是相同的.
这些字符串由linux命令返回.
编辑:谢谢,这么多好的答案
是否有一些解决方案
<form>
<input type="text" ...
</form>
Run Code Online (Sandbox Code Playgroud)
如果里面没有提交按钮,在文本字段内按Enter键不提交表单,是否有一些修复方法?
我正在开发一个PHP Web应用程序,我想为应用程序提供更多安全性,以便没有人可以轻易地破坏功能.
关于我的问题的简要说明:在一个模块中有一个阶段,我正在检查请求的来源(来自此请求的来源)
目前,我正在使用HTTP_REFERRER变量(在php中可用).我正在使用一个特定的URL(例如http://www.example.com/test.php)检查此变量值.如果存在完全匹配,则只有我调用进一步的操作.
我对上述方法感到困惑,我是否应该使用HTTP_REFERRER或检查IP地址(如果来自任何特定的IP地址,有效请求)?
我也想知道提供安全性的更好方法.
有人有想法那么请分享?
提前致谢
我在Visual C#2010中注意到,每当您将目标框架版本从默认的4.0客户端配置文件更改时(即使您之后再将其更改),IDE也会创建一个.配置文件,它显然认为应该附带该程序..config文件基本上只是说支持/目标框架版本是什么.
现在,就我从谷歌搜索中所说的那样,如果该文件不存在,那么回退就是尝试针对它构建的框架版本运行该程序.
因为这可能与.config文件所说的版本相同,这是否意味着.config文件没有效果,可以省略?或者我错过了什么?
可能的重复:
Android:如何将蓝牙连接传递给另一个活动?
我有一个应用程序,我将在其中通过蓝牙连接传输数据。
在我的概念验证应用程序中,我能够将蓝牙通信放在不同的线程中,并将所有其他工作保留在同一活动上(使用 ViewFlipper)。
然而,对于我的下一次迭代,我将需要使用几个不同的“屏幕”(活动)。流程大概是这样的:
我的初始活动将连接到我将从中获取数据的蓝牙设备。
“主要”活动中的一项活动是从 BT 设备获取数据列表并将其显示在列表视图中。然后,当我单击某个项目时,我需要获得更详细的数据视图(这在另一个活动中显示,但还必须访问 BT 连接)。
除了“主要”活动之外,还会有其他特定活动。
所以我的问题是,管理该问题的最佳方法是什么,我一次启动蓝牙连接,而不必为每个活动再次启动它?
我正在使用 Python 和 psycopg2 运行一堆查询。我创建了一个包含大约 200 万行的大型临时表,然后通过使用cur.fetchmany(1000)和运行涉及这些行的更广泛的查询,一次从中获取 1000行。但是,广泛的查询是自给自足的 - 一旦完成,当我继续下一个 1000 时,我不再需要它们的结果。
但是,在大约 1000000 行中,我从 psycopg2 中得到了一个例外:
psycopg2.OperationalError: out of shared memory
HINT: You might need to increase max_locks_per_transaction.
Run Code Online (Sandbox Code Playgroud)
有趣的是,这发生在我执行查询以删除更广泛的查询创建的一些临时表时。
为什么会发生这种情况?有什么办法可以避免吗?这很烦人,这发生在中途,这意味着我必须再次运行它。可能max_locks_per_transaction有什么关系?
注意:我没有做任何.commit()s,但我正在删除我创建的所有临时表,而且我只为每个“广泛”事务处理相同的 5 个表,所以我不知道如何用完表锁可能是问题...
哪个更好用
.menu{
float:left;
width:600px;
height:25px;
background:url(bg.png) repeat-x;
}
.menu ul{
float:left;
}
.menu ul li{
float:left;
width:150px;
height:25px;
background:#F00;
}
Run Code Online (Sandbox Code Playgroud)
要么
.menu{
float:left;
width:600px;
height:25px;
background:url(bg.png) repeat-x;
}
.menu ul{
float:left;
}
.menu li{
float:left;
width:150px;
height:25px;
background:#F00;
}
Run Code Online (Sandbox Code Playgroud)
该标签是正确的menu ul li还是menu li?
我的php程序分为几个模块,每个模块都有自己的设置。这些设置几乎不会改变,所以最好将设置放在ini文件或mysql数据库中?
如果我使用ini样式,那么更新ini文件有多难?
$.trim() 使用以下RegExp修剪字符串:
/^(\s|\u00A0)+|(\s|\u00A0)+$/g
Run Code Online (Sandbox Code Playgroud)
事实证明,这可能非常难看,例如:
var mystr = ' some test -- more text new test xxx';
mystr = mystr.replace(/^(\s|\u00A0)+|(\s|\u00A0)+$/g, "");
Run Code Online (Sandbox Code Playgroud)
这段代码挂起了 Firefox和Chrome,它就像永远一样." mystr"包含空格,但主要是hex 160(A0)字符.这个"问题"只会发生,如果没有前置whitespace/A0,但在字符串中的某个地方.我不知道为什么会这样.
这个表达式:
/^[\n\r\t \xA0]+|[\n\r\t \xA0]$/g
Run Code Online (Sandbox Code Playgroud)
在所有测试场景中都能正常工作.也许是一个更好的模式?
来源:http://code.jquery.com/jquery-1.4.2.js
UPDATE
看起来你不能复制和粘贴这个示例字符串,在某些点上这些A0字符被替换.Firebug console也将替换粘贴上的字符,你必须在一个sepperate html文件/编辑器中创建自己的字符串来测试它.