An enhanced mysql driver with an async interface and threaded access support
C Ruby
Pull request Compare This branch is 1 commit ahead, 6 commits behind oldmoe:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ext
lib
test
README.rdoc
Rakefile
TODO_LIST
mysqlplus.gemspec

README.rdoc

MySQLPlus

An enhanced MySQL database driver. With support for async operations and threaded database access.

Building

gem build mysqlplus.gemspec

OS X

with the default mysql installed:

  sudo gem install mysqlplus-0.1.0.gem -- --with-mysql-config

with mysql installed by macports:

  sudo gem install mysqlplus-0.1.0.gem -- --with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config

with mysql installed by homebrew:

  sudo gem install mysqlplus -- --with-mysql-config=/usr/local/Cellar/mysql/5.1.51/bin/mysql_config

with x86 mysql (NOT x86_64!) installed from mysql.com:

  sudo env ARCHFLAGS="-arch i386" gem install mysqlplus-0.1.0.gem -- \
    --with-mysql-dir=/usr/local/mysql \
    --with-mysql-lib=/usr/local/mysql/lib \
    --with-mysql-include=/usr/local/mysql/include

Ubuntu

apt-get install libmysql++-dev
gem install mysqlplus

Using

to use within rails
add require 'mysqlplus' to the top of environment.rb
this instantiates the Mysql class that you can use.
and it will automagically use async_query instead of query, so it's a drop in replacement.

Same with other scripts that want to use it--just require 'mysqlplus' BEFORE you require 'mysql' and it will 
load the asynchronous version, then ignore the sequent require 'mysql' call.

Other helpful mysql utilities:

slim attributes http://slim-attributes.rubyforge.org/ boosts mysql speed by using arrays instead of hashed lookup.
Hash extension gem also results in speedups when used: http://blog.chak.org/2008/02/09/speeding-up-activerecord-with-hashes-take-2/

Credits

Aman Gupta, for help in threading support and improved tests Tomita Masahiro–since this is a fork of his already excellent mysql lib [www.tmtm.org/en/mysql/ruby]. Roger Pack, for helping in the file descriptor hunt :) Lourens Naude for 1.9 integration help.

License

Ruby License, www.ruby-lang.org/en/LICENSE.txt.

Mailing list

groups.google.com/group/never-block?hl=en