Flexview : Materialized view implementation
Flexviews is basically materialized views implementation for MariaDB, MySQL and its forks. It consists of a SQL API that creates materialized views and refresh them.
The advantage of Flexviews is that the materialized views can be incrementally refreshed, that is, the views are updated efficiently by using special logs which record the changes to database tables. Flexviews creates and maintains these logs with the help of the tools in it. The views created by Flexviews supports JOINs and all major aggregate functions.Flexviews works well with Shard-Query that can be used to shard the source data, making the refresh process faster.
Requirements for flexview implementation
1.Required MySQL settings
- MySQL 5.1+
- Row Level Binary logging (binlog_format = ROW in my.cnf)
- server_id set to unique value (server_id = 999 in my.cnf)
- SUPER privileges
2. Suggested MySQL 5.1 settings
- transaction-isolation = READ-COMMITTED
3. Transaction isolation level: READ-COMMITTED
This transaction isolation level, when combined with row-based binary logging, will prevent locks from being held during
INSERT .. SELECT statements which Flexviews uses.
- PHP 5.2+ required, 5.3+ is recommended
- pcntl extension
- MySQL extension
- PHP is required for FlexCDC, the binary log reading change data capture tool included in Flexviews.