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:
- Select-Statements, die
- keine JOINS enthalten aber
- 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: