Skip to content

Instantly share code, notes, and snippets.

@jinleileiking
Created May 17, 2012 08:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jinleileiking/2717464 to your computer and use it in GitHub Desktop.
Save jinleileiking/2717464 to your computer and use it in GitHub Desktop.
Sqlite using ruby
require 'rubygems'
require 'sqlite3'
db = SQLite3::Database.new( "ec00" )
begin
puts "dropping tables....."
db.execute("drop table member;")
db.execute("drop table rule;")
puts "done...."
rescue
puts "none table existed!"
end
puts "Creating tables"
begin
cmd = "create table member(member varchar(8) primary key "
#cmd = "create table member(member varchar(8) "
(1..16).each do |time|
cmd << ", rule#{time} INTEGER"
end
cmd << ");"
db.execute(cmd)
db.execute("create table rule(number integer primary key, content varchar(2048));")
rescue
puts "Table has already created!!"
end
puts "Creating rules"
(1..50).each do |time|
db.execute("INSERT INTO rule VALUES ( #{time}, 'This is rule number #{time}');")
end
puts "Creating members"
start = Time.now
#db.execute("PRAGMA synchronous=OFF;")
db.execute("BEGIN TRANSACTION;")
(1..10000).each do |member|
cmd = ""
cmd << "INSERT INTO member VALUES ( #{member}"
(1..16).each do |time|
cmd << ", #{member / 100 + time}"
end
cmd << ");"
db.execute(cmd)
end
db.execute("COMMIT TRANSACTION;")
tend = Time.now
puts "Start =\t #{start.min} : #{start.sec} : #{start.usec}"
puts "End = \t #{tend.min} : #{tend.sec} : #{tend.usec}"
puts "Diff =\t #{tend - start}"
puts "----" * 10
p db.execute( "select * from member;" )
p db.execute( "select * from rule;")
def run
db = SQLite3::Database.new( "ec00" )
rules = []
start = Time.now
result = db.execute("SELECT * FROM member WHERE member = 40")
result = result[0]
result[1..result.size].each do |rule|
rules << db.execute("SELECT content FROM rule WHERE number = #{rule}")
end
tend = Time.now
pp result
pp rules
puts "Start= #{start.min} : #{start.sec} : #{start.usec}"
puts "End= #{tend.min} : #{tend.sec} : #{tend.usec}"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment