插入100000+;在rails中记录到mysql
我想将信息从redis传输到mysql 首先,我从redis获得了用户id和分数插入100000+;在rails中记录到mysql,mysql,ruby-on-rails,ruby,redis,Mysql,Ruby On Rails,Ruby,Redis,我想将信息从redis传输到mysql 首先,我从redis获得了用户id和分数 info = $redis.zrevrange("some_info", 0, limit - 1, withscores: withscores) 然后我需要处理这些日期: total_info = info.each_slice(2).to_a.inject([]) do |sum, e| sum << { id: id, name: n
info = $redis.zrevrange("some_info", 0, limit - 1, withscores: withscores)
然后我需要处理这些日期:
total_info = info.each_slice(2).to_a.inject([]) do |sum, e|
sum << {
id: id,
name: name,
rank: rank,
score: score,
}
total_info=info.每个_切片(2).注入([])做|求和,e|
sum您可以在his中使用
以下是一个例子:
columns = [ :id, :name, :rank, :score ]
values = []
infos.each do |info|
values << [info.id, info.name, info.rank, info.score]
end
Model.import columns, values, validate: false
columns=[:id,:name,:rank,:score]
值=[]
infos.each do| info|
值可以在his中使用
以下是一个例子:
columns = [ :id, :name, :rank, :score ]
values = []
infos.each do |info|
values << [info.id, info.name, info.rank, info.score]
end
Model.import columns, values, validate: false
columns=[:id,:name,:rank,:score]
值=[]
infos.each do| info|
值感谢@e4c5和@Rich Peck
我将日期转储到.CSV文件中,然后将其导入mysql。它非常快
info = $redis.zrevrange("some_info", 0, limit - 1, withscores: withscores)
CSV.open("temp.csv", "w") do |csv|
csv << %w(id, name, rank, score......)
info.each_slice(2) do |e|
csv << [id, name, rank, score......]
end
end
info=$redis.zrevrange(“一些信息”,0,限制-1,带核心:带核心)
CSV.open(“临时CSV”,“w”)do | CSV|
csv感谢@e4c5和@Rich Peck
我将日期转储到.CSV文件中,然后将其导入mysql。它非常快
info = $redis.zrevrange("some_info", 0, limit - 1, withscores: withscores)
CSV.open("temp.csv", "w") do |csv|
csv << %w(id, name, rank, score......)
info.each_slice(2) do |e|
csv << [id, name, rank, score......]
end
end
info=$redis.zrevrange(“一些信息”,0,限制-1,带核心:带核心)
CSV.open(“临时CSV”,“w”)do | CSV|
csv最快的方法是迭代redis集合,将每一行写入csv文件,并使用加载数据加载它INFILE@e4c5好主意!我正在尝试是的,最好的方法是将数据转储到.sql
文件中,并将其放入数据库。CSV应该足够了;通过循环进行迭代需要提前进行。最快的方法是迭代redis集合,将每一行写入CSV文件,并使用加载数据加载它INFILE@e4c5好主意!我正在尝试是的,最好的方法是将数据转储到.sql
文件中,并将其放入数据库。CSV应该足够了;在循环中迭代将花费很长时间