小编Tob*_*ker的帖子

如何使用perl和postgresql遍历大型结果集

DBD::PgPerl 的PostgreSQL绑定将始终获取查询的整个结果集.因此,如果您使用简单的prepare执行来遍历大型表,那么只需运行就可以将整个表放在内存中$sth->execute().准备好的陈述和电话fetch_row都没有帮助.

如果您正在使用BIG表,以下将失败.

use DBI;
my $dbh =   DBI->connect("dbi:Pg:dbname=big_db","user","password",{
        AutoCommit => 0,
        ReadOnly => 1,
        PrintError => 1,
        RaiseError =>  1,
});

my $sth = $dbh->prepare('SELECT * FROM big_table');
$sth->execute(); #prepare to run out of memory here
while (my $row = $sth->fetchrow_hashref('NAME_lc')){
  # do something with the $row hash
}
$dbh->disconnect();
Run Code Online (Sandbox Code Playgroud)

postgresql perl dbi large-data database-cursor

3
推荐指数
1
解决办法
142
查看次数

d3.js如何在水平日志缩放轴上放置自定义标签

我正在绘制一个带有d3.js的图表, d3.scale.log 用于x轴和自定义标签.不幸的是,标签相互碰撞......有关如何使这项工作的任何提示?

var width = 400;
var x = d3.scale.log().domain([1, 1000]).range([0, width]);

var formatSi = d3.format(".4s");
var xAxis = d3.svg.axis()
    .scale(x)
    .orient("bottom")
    .tickFormat(function(d, i) {
        return formatSi(d) + 'Hz'
    });

var svg = d3.select("#chart")
    .append("svg").attr("width", width)
    .attr("height", 200)
    .append("g").attr("transform", "translate(20,20)");

([1, 3, 6, 9]).forEach(function(d) {
    x.domain([1, Math.pow(10, d)]);
    svg.append("g").attr("class", "axis x")
        .attr("transform", "translate(0," + d * 2 + "0)")
        .call(xAxis);
});?
Run Code Online (Sandbox Code Playgroud)

这段代码的一个工作示例是在jsfiddle上

javascript d3.js

2
推荐指数
1
解决办法
5506
查看次数

标签 统计

d3.js ×1

database-cursor ×1

dbi ×1

javascript ×1

large-data ×1

perl ×1

postgresql ×1