前几天有人通过电子邮件向我询问了一个关于整数分区的问题(因为我发布了一个Perl模块,Integer :: Partition来生成它们),我无法回答.
背景:这里是7的所有整数分区(每行的总和等于7).
7
6 1
5 2
5 1 1
4 3
4 2 1
4 1 1 1
3 3 1
3 2 2
3 2 1 1
3 1 1 1 1
2 2 2 1
2 2 1 1 1
2 1 1 1 1 1
1 1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)
现在,如果我们查看每个分区的长度并计算每个分区的长度:
1 1
2 3
3 4
4 3
5 2
6 1
7 1
Run Code Online (Sandbox Code Playgroud)
...我们看到一个分区的长度为1(7),一个分区的长度为7(1 1 1 1 1 1 1).有4个分区长度为3:(5 …
我希望能够看到自上次查询以来没有再次读取整个文件的文件中添加了多少行.
就像是 :
ptail my_file | fgrep "[ERROR]" | wc -l
Run Code Online (Sandbox Code Playgroud)
简单的Perl解决方案是首选,因为我没有轻松访问编译器.
我有一些旧的 rrdtool 数据库,其确切的创建方法早已丢失。我需要创建一个与当前数据库具有相同特征的新数据库。我已经转储了几个旧数据库并仔细研究了内容,但我不确定如何解释元数据。我认为它出现在以下节中
<cf> AVERAGE </cf>
<pdp_per_row> 360 </pdp_per_row> <!-- 1800 seconds -->
<xff> 5.0000000000e-01 </xff>
Run Code Online (Sandbox Code Playgroud)
有四个这样的节,它们与我记得设置循环级联的方式相对应。有没有人已经这样做了,或者可以给我一些关于如何从现有数据库克隆一个新的空 rrd 数据库的指针?或者告诉我我在文档中遗漏了什么。
为了这个例子,考虑一个表
create table foo (
contents text NOT NULL,
is_active boolean NOT NULL DEFAULT false,
dt_active date
)
Run Code Online (Sandbox Code Playgroud)
我插入一条记录:
insert into foo (contents) values ('bar')
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好。稍后,我现在想“激活”记录:
update foo set is_active = true
Run Code Online (Sandbox Code Playgroud)
当is_active从false变为 时true,我想做的是将fordt_active设置为now()。对于奖励积分,如果is_active从更改true为false,dt_active 设置为 null,那会很好,但我可以没有它。
我真的很想将这种内务管理推送到数据库中,它会使客户端代码更清晰(因为许多表(甚至表中的列元组)都可以从这种技术中受益)。
我很难过如何在触发器中提取数据库中的当前记录(我正在使用 plpgsql),以便将“then”与“now”进行比较。非常感谢指向代码示例或片段的指针。
我在一组图像服务器前面有一个nginx实例:
upstream img-farm-1 {
server 10.0.1.1;
server 10.0.1.2;
server 10.0.1.3;
server 10.0.1.4;
# etc
}
location ~ ^/static: {
rewrite /static:(.*) /$1 break;
proxy_pass http://img-farm-1;
limit_except GET {
allow all;
}
}
Run Code Online (Sandbox Code Playgroud)
这个集群正在被一个即将投入使用的新集群取代,有一段时间,我希望从旧集群中提供映像,但如果映像是新映像或已从旧集群迁移到新集群,则会回退到新集群新的.迁移完成后,我可以返回原始设置.
所以我想我能做到
upstream img-farm-2 {
server 10.0.2.1;
server 10.0.2.2;
server 10.0.2.3;
server 10.0.2.4;
server 10.0.2.5;
# etc
}
location ~ ^/static: {
access_log /var/log/nginx/static.access.log;
rewrite /static:(.*) /$1 break;
proxy_pass http://img-farm-1;
error_page 404 = @fallback-2;
}
location @fallback-2 {
access_log /var/log/nginx/static-2.access.log;
proxy_pass http://img-farm-2;
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我正在看404,static.access.log但error_page 404 …
最近几个问题讨论了命名列的策略,我很惊讶地发现了在列名中嵌入外键和主键概念的概念.那是
select t1.col_a, t1.col_b, t2.col_z
from t1 inner join t2 on t1.id_foo_pk = t2.id_foo_fk
Run Code Online (Sandbox Code Playgroud)
我必须承认我从来没有使用任何使用这种方案的数据库系统,我想知道它有什么好处.我看到它的方式,一旦你学会了系统的N个主表,你就会用这些表写出几个数量级的请求.
为了提高开发效率,您需要了解哪些表是重要的表,哪些表是简单的支流.您需要向内存提交大量列名.其中一个基本任务是将两个表连接在一起.为了减少学习工作,最简单的方法是确保两个表中的列名相同:
select t1.col_a, t1.col_b, t2.col_z
from t1 inner join t2 on t1.id_foo = t2.id_foo
Run Code Online (Sandbox Code Playgroud)
我认为,作为一个开发人员,你不需要提醒那些关于哪些列是主键,哪些列是外键而哪些列什么都没有.如果你很好奇的话,很容易看到架构.当看着一个随机的
tx inner join ty on tx.id_bar = ty.id_bar
Run Code Online (Sandbox Code Playgroud)
......知道哪一个是外键是非常重要的吗?外键仅对数据库引擎本身很重要,以允许它确保引用完整性并在更新和删除期间执行正确的操作.
这里有什么问题要解决?(我知道这是一个讨论的邀请,并随时可以这样做.但与此同时,我正在寻找答案,因为我可能真的错过了一些东西).