Slide 19
Slide 19 text
DBNAME = 'wwwfsc'
CORES_COUNT = 4
ForceEncoding = 'Big5-UAO'
LIMIT = ARGV[0].to_i || 10000
OUT = '/dev/null'
sqls = CORES_COUNT.times.map do |x|
sprintf("SELECT * FROM cdb_posts ORDER BY pid LIMIT %d OFFSET %d;", LIMIT, (x
* LIMIT))
end
class String
def to_my_val
"'#{Mysql2::Client.escape
self.force_encoding(ForceEncoding).encode('UTF-8', :invalid => :replace, :undef
=> :replace, :replace => '??')}'"
end
end
procs = sqls.map do |sql|
Proc.new do |out|
open(out,'w') do |io|
Mysql2::Client.new(database: DBNAME, reconnect: true, encoding:
'latin1').query(sql).each(as: :array) do |row|
io.print "INSERT INTO `cdb_posts` VALUES
(#{row.map(&:to_my_val).join(',')});\n"
end
end
end
end
13年1月9⽇日星期三