スキーマ定義
unless DB.table_exists? :users DB.create_table :users do primary_key :id String :screen_name, :unique => true String :uid String :name varchar :description , :length => 500 varchar :profile_image_url , :length => 500 varchar :url , :length => 500 integer :utc_offset String :time_zone String :location integer :followers_count integer :friends_count integer :statuses_count end DB.add_index :users, :screen_name end
比較用プログラム
require 'rubygems' require 'sequel' # どちか切り替える DB = Sequel.connect('mysql://root:password@127.0.0.1/tusers') #DB = Sequel.sqlite("tusers.db") class Users < Sequel::Model ; end st_time = Time.now list = [] Users.find_all{|u| list << u } puts (Time.now - st_time)
8 万件つっこんで、 sqlite と mysql で時間を比較してみた
ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0] CPU 1.6 GHz Intel Core 2 Duo Mem 2GB mysql : 9 [s] sqlite3 : 29 [s]
やっぱ MySQL の方が早いんだな。