Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
61 lines (56 sloc) 3.33 KB
This file is part of FlexViews. (c) 2008-2010
FlexViews is free software: you can redistribute it and/or modify
it under the terms of the Lesser GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
FlexViews is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with FlexViews in the file COPYING, and the Lesser extension to
If not, see <>.
/****** 1/README
* |html <pre>
* Welcome to Flexviews!
* Flexviews is a unique toolkit for the creation and upkeep of MATERIALIZED VIEWS for MySQL. You may freely use this project in your own projects.
* Simply keep the above copyright notice intact.
* Flexviews must be installed into the `flexviews` schema. FlexCDC must be configured to use the `flexviews` schema as well.
* This is because the stored procedures must know where to find the Flexviews metadata. This is a shortcoming of MySQL
* stored procedures. Some day in the future, there will be a 'make' step that allows a global search/replace to switch the name
* `flexviews` to another name, but for now, you MUST install the tables and stored procedures in the `flexviews` schema.
* * Flexviews test suite!
* * Autocleanup of changelog records which are no longer needed. The old mvlog_autocleanup script has not worked since the introduction of the external consumer.
* * Examples!
* Quick Overview
* -------------------
* directories:
* * consumer - This directory contains FlexCDC which reads binary logs using mysqlbinlog and inserts entries into table change logs
* * procs - contains the source to the stored procedures. usually invoked by install.sql - If you want to modify Flexviews this is probably the place to start.
* * php - contains misc scripts of no particular use to a wide audience, but that I want to keep under source control
* * schema - contains the CREATE DATABASE and CREATE TABLE statements for the flexviews schema. usually invoked by install.sql
* * events - contains two events (compute.sql, apply.sql) which compute view changes every 5 minutes, and apply them every 10. these values may need to be adjusted based on your number of views and volume of changes. All of the views are computed/applied to the same transactional point.
* Credit where credit is due:
* Flexviews currently uses a version of the algorithm described in: 'How to roll a join': (2000)
* Flexviews extends this algorithm to distributive aggregate functions with 'summary delta tables': (google scholar has PDF version too)
* My ideas:
* Flexviews supports non-distributable aggregate functions such as MIN/MAX/COUNT(DISTINCT) by trading space-for-time using a secondary materialized view called a "sub_view".
* Many thanks to the authors of those papers.
* Justin Swanhart
* |html </pre>