"scrooge" lässt SELECTs abnehmen 0

Posted by fwoeck
on Tuesday, March 17

scrooge optimiert SELECT-Statements dadurch, dass es nach einer adaptiven Phase nur solche Attribute aus der Datrenbank holt, die später auch wirklich benötigt werden.

Dazu wird ein transparenter Proxy vor das AR-Modell geschoben, und es sind keine Anpassungen des Quellcodes nötig.

Die Installation wollte anfänglich nicht so recht mit den vorhandenen Plugins meines laufenden Projekts harmonieren – nachdem jetzt allerdings ein Rewrite (von scrooge) stattgefunden hat, klappt’s.

Das Plugin wird nur installiert, bzw. als gem eingebunden:


config.gem 'methodmissing-scrooge', :lib => 'scrooge'

und läuft. Ein konkreter Nachweis anhand von Benchmarks oder Logauswertungen steht hier noch aus.

Jedenfalls trifft die Beschleunigung für diese Fälle in Kraft:

  1. Select-Statements, die
  2. keine JOINS enthalten aber
  3. einen Primärschlüssel besitzen

Asynchroner DB-Zugriff mit mysqlplus

Neverblock hat u.a. einen Mysql-Treiber herausgebracht, der threaded und asynchron arbeitet. Für vielbesuchte Seiten dürfte das eine merkliche Entlastung bringen. Die Installation:

gem install oldmoe-mysqlplus

Danach ruft man den Treiber direkt als ersten in der environment.rb auf – er ersetzt die nativen Rails-query-Aufrufe durch async-query.


require 'mysqlplus'

Weblinks:

Comments

Leave a response

Comment