I'm pleased to announce the release of Spider storage engine version 3.2(rc) and Vertical Partitioning storage engine version 1.1(beta).
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
Please use the following for downloading binary file.
http://spiderformysql.com/download_spider.html
The main changes in this version are following.
Spider
- Add server parameter "spider_log_result_error_with_sql", "spider_version", "spider_internal_xa_id_type", "spider_casual_read", "spider_dry_access" and "spider_delete_all_rows_type".
- Add table parameter "casual_read" and "delete_all_rows_type".
Vertical Partitioning
- Add server parameter "vp_version".
From this release, release target is not only MySQL 5.5 but also MariaDB 10.0. MariaDB 10.0 version is bundling Spider, VP and Mroonga. Please try to use this. You can use Bached Key Access by setting join_cache_level to 5 and more. So please set it.
Limited Spider features for MariaDB 10.0 which I announced are now available except "Using Spider table through handlersocket".
Please see "99_change_logs.txt" in the download documents for checking other changes.
Thanks to Stephane, Nicolas, Koichi, Akihiko, Yasunori for supporting.
Enjoy!
Showing posts with label VP. Show all posts
Showing posts with label VP. Show all posts
10/07/2013
[MySQL][Spider][VP]Spider-3.1 VP-1.0 released
I'm pleased to announce the release of Spider storage engine version 3.1(beta) and Vertical Partitioning storage engine version 1.0(beta).
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
Please use the following for downloading binary file.
http://spiderformysql.com/download_spider.html
The main changes in this version are following.
Spider
- Add server parameter "spider_general_log" and "spider_log_result_errors".
- Add table parameter "force_bulk_update" and "force_bulk_delete".
- Add "spider_bka_mode=2" and "bka_mode=2".
- Add "mysql.spider_xa_failed_log" table.
- Performance improvement for "COUNT", "MAX", "MIN" and "SUM" without join and distinct.
- Performance improvement for fulltext search.
- Add case of parallel searching.
Note: "semi_split_read=2" is default value from this version. If you want to use previous version's setting, please set "semi_split_read=0".
Vertical Partitioning
This release is bug fix release.
MySQL
Becomes version 5.5.34.
- Add "log_result_errors".
Please see "99_change_logs.txt" in the download documents for checking other changes.
Thanks to memorycraft, Adrian, Stephane, Sergey, Elena, Enid, Koichi, Yutaro, Honda-san, Kanzaki-san for bug reporting.
Enjoy!
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
Please use the following for downloading binary file.
http://spiderformysql.com/download_spider.html
The main changes in this version are following.
Spider
- Add server parameter "spider_general_log" and "spider_log_result_errors".
- Add table parameter "force_bulk_update" and "force_bulk_delete".
- Add "spider_bka_mode=2" and "bka_mode=2".
- Add "mysql.spider_xa_failed_log" table.
- Performance improvement for "COUNT", "MAX", "MIN" and "SUM" without join and distinct.
- Performance improvement for fulltext search.
- Add case of parallel searching.
Note: "semi_split_read=2" is default value from this version. If you want to use previous version's setting, please set "semi_split_read=0".
Vertical Partitioning
This release is bug fix release.
MySQL
Becomes version 5.5.34.
- Add "log_result_errors".
Please see "99_change_logs.txt" in the download documents for checking other changes.
Thanks to memorycraft, Adrian, Stephane, Sergey, Elena, Enid, Koichi, Yutaro, Honda-san, Kanzaki-san for bug reporting.
Enjoy!
2/18/2013
[MySQL][Spider][VP]Spider-3.0 VP-0.18 released
I'm pleased to announce the release of Spider storage engine version 3.0(beta) and Vertical Partitioning storage engine version 0.18(beta).
Thank you for waiting such a long time! This release includes my 1 year development.
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
Please use the following for downloading binary file.
http://spiderformysql.com/download_spider.html
The main changes in this version are following.
Spider
- Support link to oracle tables.
Connection from Spider to Oracle is now available by using table parameter 'server "oracle"'. For using this feature, please build from source code on Oracle client library installed server with 'ORACLE_HOME'. I can't bundle Oracle client library because Oracle client library isn't GPL. And please set service name of Oracle to table parameter 'host', schema name of Oracle to table parameter 'database'.
- Support handlersocket bulk access feature.
Please read the following 'handlersocket' section.
- Performance improvement for "insert on duplicate key update" with "direct_dup_insert=1".
'insert on duplicate key update' is sent to data node directly as much as possible.
- Add server parameter "spider_bulk_access_free".
If Spider server using handlersocket has enough memory, there is possibility of performance improvement by setting this parameter to '1' for growing memory reusability.
- Add table parameter "pk_name", "sequence_name", "bulk_access_free".
Please set primary key name of data node table to 'pk_name', if primary key name of data node table is not 'PRIMARY' like using Oracle table.
Please set sequence name of data node to 'sequence_name', if you want to use sequence of data node table for auto increment value like using Oracle table with 'auto_increment_mode=2or3'.
Note: "spider_force_commit=1" is default value from this version. If you want to use previous version's setting, please set "spider_force_commit=0".
Vertical Partitioning
- Support handlersocket bulk access feature.
Please read the following 'handlersocket' section.
handlersocket
Becomes version 1.2.
- Add bulk access feature.
Handlersocket is multiple clients 1 therad model, so 1 thread can make a bulk request from multiple clients requests. Bulk request can improvement throughput extremely by using Spider.
- Add server parameter "handlersocket_bulk_exec_size".
This parameter is bulk access size of requests. '0' means turning off bulk access feature. If there is a lot of requests greater than this parameter, requests divide multiple bulk requests and send to data node using pipelining by Spider.
This parameter is global parameter and you can change it from SQL interface any time.
Please see "99_change_logs.txt" in the download documents for checking other changes.
This release is for 5.5 yet, please wait for next release for 5.6.
Thanks to Ingo, Enid, Yihuey, Koichi, Hideyuki, Keisuke for bug reporting.
Thanks to Akira for your advice.
Enjoy!
Thank you for waiting such a long time! This release includes my 1 year development.
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
Please use the following for downloading binary file.
http://spiderformysql.com/download_spider.html
The main changes in this version are following.
Spider
- Support link to oracle tables.
Connection from Spider to Oracle is now available by using table parameter 'server "oracle"'. For using this feature, please build from source code on Oracle client library installed server with 'ORACLE_HOME'. I can't bundle Oracle client library because Oracle client library isn't GPL. And please set service name of Oracle to table parameter 'host', schema name of Oracle to table parameter 'database'.
- Support handlersocket bulk access feature.
Please read the following 'handlersocket' section.
- Performance improvement for "insert on duplicate key update" with "direct_dup_insert=1".
'insert on duplicate key update' is sent to data node directly as much as possible.
- Add server parameter "spider_bulk_access_free".
If Spider server using handlersocket has enough memory, there is possibility of performance improvement by setting this parameter to '1' for growing memory reusability.
- Add table parameter "pk_name", "sequence_name", "bulk_access_free".
Please set primary key name of data node table to 'pk_name', if primary key name of data node table is not 'PRIMARY' like using Oracle table.
Please set sequence name of data node to 'sequence_name', if you want to use sequence of data node table for auto increment value like using Oracle table with 'auto_increment_mode=2or3'.
Note: "spider_force_commit=1" is default value from this version. If you want to use previous version's setting, please set "spider_force_commit=0".
Vertical Partitioning
- Support handlersocket bulk access feature.
Please read the following 'handlersocket' section.
handlersocket
Becomes version 1.2.
- Add bulk access feature.
Handlersocket is multiple clients 1 therad model, so 1 thread can make a bulk request from multiple clients requests. Bulk request can improvement throughput extremely by using Spider.
- Add server parameter "handlersocket_bulk_exec_size".
This parameter is bulk access size of requests. '0' means turning off bulk access feature. If there is a lot of requests greater than this parameter, requests divide multiple bulk requests and send to data node using pipelining by Spider.
This parameter is global parameter and you can change it from SQL interface any time.
Please see "99_change_logs.txt" in the download documents for checking other changes.
This release is for 5.5 yet, please wait for next release for 5.6.
Thanks to Ingo, Enid, Yihuey, Koichi, Hideyuki, Keisuke for bug reporting.
Thanks to Akira for your advice.
Enjoy!
2/10/2012
[MySQL][Spider][VP]Spider-2.28 VP-0.17 released
I'm pleased to announce the release of Spider storage engine version 2.28(beta) and Vertical Partitioning storage engine version 0.17(beta).
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
Please use the following for downloading binary file.
http://spiderformysql.com/download_spider.html
The main changes in this version are following.
Spider
- Support parallel searching. ("spider_bgs_mode > 0")
The table using the Spider bundled MySQL and table partitioning performs parallel search of each partition. However, parallel search is not performed in the case which does not make all the partitions applicable to search like sequential search with limit.
- Add server parameter "spider_use_default_database" and "spider_remote_default_database".
These parameter is added for using some replication parameters like "binlog-do-db" on data node. "spider_use_default_database=0" is same of previous versions.
- Add table parameter "access_balance".
This parameter is the weight of load balancing for Spider's redundancy feature.
- Add INFORMATION SCHEMA "spider_alloc_mem".
This INFORMATION SCHEMA plugin adds "information_schema.spider_alloc_mem" table for showing Spider's using memory status. "alloc_mem_count" and "free_mem_count" columns in "information_schema.spider_alloc_mem" table express the count of increasing and decreasing memory, so they do not necessarily become the same.
- Add value of 3 to "quick_mode"(table parameter) and "spider_quick_mode"(server parameter).
"quick_mode=3" is the mode of using temporary table for result set from data node. This mode is useful for searching a huge table.
Spider's management table was changed from previous version and add new plugin, please execute "install_spider.sql" for upgrading.
Vertical Partitioning
- Add UDF paramter "suppress_autoinc".
- Add table parameter "allow_bulk_autoinc" and "allow_different_column_type".
- Add server parameter "vp_allow_bulk_autoinc".
handlersocket
Becomes version 1.1.
- Add server parameter "handlersocket_slow_log", "handlersocket_long_exec_time" and "handlersocket_close_table_interval".
"handlersocket_slow_log" is logging handlersocket request with slow (spend over "handlersocket_long_exec_time" micro second) response into slow log with "slow_query_log=on".
"handlersocket_close_table_interval" is interval of closing table internally for releasing meta data lock for executing like "alter table". You can use this parameter "handlersocket_close_table_interval=0" (doesn't close) for normally and only change this parameter for executing like "alter table".
These parameters are global parameter and you can change them from SQL interface.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Thanks to Takafumi, Yukihiro, Jung, Adrian, leechangyeol, liuyanhong, Hisazumi, Hideyuki, Keisuke for bug reporting.
Thanks to Akira for your advice.
Enjoy!
--- 2/17 postscript ---
Spider binaries is updated for fixing getting no result bug of parallel searching. I'm sorry.
Updated version's handlersocket is added the following parameter.
- Add server parameter "handlersocket_get_lock".
This parameter makes handlersocket possible turning off get_lock for write threads. "handlersocket_get_lock=off" is useful for increasing "handlersocket_threads_wr" for some case as using Spider through handlersocket.
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
Please use the following for downloading binary file.
http://spiderformysql.com/download_spider.html
The main changes in this version are following.
Spider
- Support parallel searching. ("spider_bgs_mode > 0")
The table using the Spider bundled MySQL and table partitioning performs parallel search of each partition. However, parallel search is not performed in the case which does not make all the partitions applicable to search like sequential search with limit.
- Add server parameter "spider_use_default_database" and "spider_remote_default_database".
These parameter is added for using some replication parameters like "binlog-do-db" on data node. "spider_use_default_database=0" is same of previous versions.
- Add table parameter "access_balance".
This parameter is the weight of load balancing for Spider's redundancy feature.
- Add INFORMATION SCHEMA "spider_alloc_mem".
This INFORMATION SCHEMA plugin adds "information_schema.spider_alloc_mem" table for showing Spider's using memory status. "alloc_mem_count" and "free_mem_count" columns in "information_schema.spider_alloc_mem" table express the count of increasing and decreasing memory, so they do not necessarily become the same.
- Add value of 3 to "quick_mode"(table parameter) and "spider_quick_mode"(server parameter).
"quick_mode=3" is the mode of using temporary table for result set from data node. This mode is useful for searching a huge table.
Spider's management table was changed from previous version and add new plugin, please execute "install_spider.sql" for upgrading.
Vertical Partitioning
- Add UDF paramter "suppress_autoinc".
- Add table parameter "allow_bulk_autoinc" and "allow_different_column_type".
- Add server parameter "vp_allow_bulk_autoinc".
handlersocket
Becomes version 1.1.
- Add server parameter "handlersocket_slow_log", "handlersocket_long_exec_time" and "handlersocket_close_table_interval".
"handlersocket_slow_log" is logging handlersocket request with slow (spend over "handlersocket_long_exec_time" micro second) response into slow log with "slow_query_log=on".
"handlersocket_close_table_interval" is interval of closing table internally for releasing meta data lock for executing like "alter table". You can use this parameter "handlersocket_close_table_interval=0" (doesn't close) for normally and only change this parameter for executing like "alter table".
These parameters are global parameter and you can change them from SQL interface.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Thanks to Takafumi, Yukihiro, Jung, Adrian, leechangyeol, liuyanhong, Hisazumi, Hideyuki, Keisuke for bug reporting.
Thanks to Akira for your advice.
Enjoy!
--- 2/17 postscript ---
Spider binaries is updated for fixing getting no result bug of parallel searching. I'm sorry.
Updated version's handlersocket is added the following parameter.
- Add server parameter "handlersocket_get_lock".
This parameter makes handlersocket possible turning off get_lock for write threads. "handlersocket_get_lock=off" is useful for increasing "handlersocket_threads_wr" for some case as using Spider through handlersocket.
10/19/2011
[MySQL][Spider][VP]Spider-2.27 VP-0.16 released
I'm pleased to announce the release of Spider storage engine version 2.27(beta) and Vertical Partitioning storage engine version 0.16(beta).
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
Please use the following for downloading binary file.
http://spiderformysql.com/download_spider.html
The main changes in this version are following.
Q4M is bundled for Linux 64bit.
Bundled Q4M supports replication, but please use it carefully.
Spider
- Support R-Tree index.
- Support direct updating for SQL access.
- Support handlersocket increment and decrement.
- Change table parameter from "net_timeout" to "connect_timeout", "net_read_timeout" and "net_write_timeout".
- Change server parameter from "spider_net_timeout" to "spider_connect_timeout", "spider_net_read_timeout" and "spider_net_write_timeout".
- Add UDF paramter "access_mode". "spider_direct_sql" support handlersocket access.
- Add server parameter "spider_hs_ping_interval", "spider_error_read_mode" and "spider_error_write_mode".
- Add table parameter "hs_write_to_read", "error_read_mode" and "error_write_mode".
- Performance improvement for "COUNT(*)", "MAX" and "MIN" without clause.
Note
- Change parameter from "net_timeout" and "spider_net_timeout" to "connect_timeout", "net_read_timeout", "net_write_timeout", "spider_connect_timeout", "spider_net_read_timeout" and "spider_net_write_timeout" from this version.
- From this version, you can't compile with static link option for Spider.
Vertical Partitioning
- Support R-Tree index.
- Support direct updating.
- Support handlersocket increment and decrement.
Note
- From this version, you can't compile with static link option for VP.
handlersocket
- Add server parameter "handlersocket_general_log".
Logging handlersocket request into general log with "general_log=on". This parameter is global parameter and you can change it from SQL interface.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Enjoy!
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
Please use the following for downloading binary file.
http://spiderformysql.com/download_spider.html
The main changes in this version are following.
Q4M is bundled for Linux 64bit.
Bundled Q4M supports replication, but please use it carefully.
Spider
- Support R-Tree index.
- Support direct updating for SQL access.
- Support handlersocket increment and decrement.
- Change table parameter from "net_timeout" to "connect_timeout", "net_read_timeout" and "net_write_timeout".
- Change server parameter from "spider_net_timeout" to "spider_connect_timeout", "spider_net_read_timeout" and "spider_net_write_timeout".
- Add UDF paramter "access_mode". "spider_direct_sql" support handlersocket access.
- Add server parameter "spider_hs_ping_interval", "spider_error_read_mode" and "spider_error_write_mode".
- Add table parameter "hs_write_to_read", "error_read_mode" and "error_write_mode".
- Performance improvement for "COUNT(*)", "MAX" and "MIN" without clause.
Note
- Change parameter from "net_timeout" and "spider_net_timeout" to "connect_timeout", "net_read_timeout", "net_write_timeout", "spider_connect_timeout", "spider_net_read_timeout" and "spider_net_write_timeout" from this version.
- From this version, you can't compile with static link option for Spider.
Vertical Partitioning
- Support R-Tree index.
- Support direct updating.
- Support handlersocket increment and decrement.
Note
- From this version, you can't compile with static link option for VP.
handlersocket
- Add server parameter "handlersocket_general_log".
Logging handlersocket request into general log with "general_log=on". This parameter is global parameter and you can change it from SQL interface.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Enjoy!
2/13/2011
[MySQL][Spider][VP][Other]Spider-2.24 VP-0.13 released
I'm pleased to announce the release of Spider storage engine version 2.24(beta) and Vertical Partitioning storage engine version 0.13(beta).
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
Spider
- MySQL 5.5 support.
- handlersocket support.
You can use handlersocket through Spider table that called by handlersocket. It means handlersocket can access to sharded databases. Currently, handlersocket support only Linux.
Set "spider_use_hs_read=1" and "spider_use_hs_write=1" for activating this feature.
Added following parameters to bundled handlersocket.
#1 handlersocket_support_merge_table
Please set this parameter to 1, if you want to use merge_myisam and vp tables through handlersocket.
#2 handlersocket_direct_update_mode
Improvement performance for a lot of rows updating. Currentry, this parameter works only for Spider table(except partitioned Spider table). I will add a direct update feature for partitioned Spider table at next release.
There are following modes.
0:Normal
1:direct update mode 1
This mode can write binary logs on local server at direct updating.
2:direct update mode 2
This mode cannot write binary logs on local server at direct updating, but this mode is the fastest. (This mode can write binary logs on remote server)
#3 handlersocket_unlimited_boundary
If limit value is more than this parameter, limit value means unlimited.
- Support fulltext search.
Except partitioned Spider table. I will add a fulltext search feature for partitioned Spider table at next release.
- It's available to set monitoring_node for per table, per link_id and per pertition to mysql.spider_link_mon_servers.
- Add table parameter "hs_read_port", "hs_write_port", "use_handler", "use_hs_read", "use_hs_write", "hs_read_socket" and "hs_write_socket".
- Add server parameter "spider_use_handler", "spider_use_hs_read", "spider_use_hs_write", "spider_hs_r_conn_recycle_mode", "spider_hs_r_conn_recycle_strict", "spider_hs_w_conn_recycle_mode" and "spider_hs_w_conn_recycle_strict".
- Add value of 3 to "auto_increment_mode"(table parameter) and "spider_auto_increment_mode"(server parameter).
Vertical Partitioning
- MySQL 5.5 support.
- Support full text search.
Except partitioned VP table. I will add a fulltext search feature for partitioned VP table at next release.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Thanks to Gen, Yoshihiko, Satoko and Makoto for testing and bug reporting for online schema changing.
Thanks to Takahiro and Kazuhide for testing and bug reporting for Spider's HA feature and VP.
Thanks to Kamipo and Laurent for bug report.
Enjoy!
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
Spider
- MySQL 5.5 support.
- handlersocket support.
You can use handlersocket through Spider table that called by handlersocket. It means handlersocket can access to sharded databases. Currently, handlersocket support only Linux.
Set "spider_use_hs_read=1" and "spider_use_hs_write=1" for activating this feature.
Added following parameters to bundled handlersocket.
#1 handlersocket_support_merge_table
Please set this parameter to 1, if you want to use merge_myisam and vp tables through handlersocket.
#2 handlersocket_direct_update_mode
Improvement performance for a lot of rows updating. Currentry, this parameter works only for Spider table(except partitioned Spider table). I will add a direct update feature for partitioned Spider table at next release.
There are following modes.
0:Normal
1:direct update mode 1
This mode can write binary logs on local server at direct updating.
2:direct update mode 2
This mode cannot write binary logs on local server at direct updating, but this mode is the fastest. (This mode can write binary logs on remote server)
#3 handlersocket_unlimited_boundary
If limit value is more than this parameter, limit value means unlimited.
- Support fulltext search.
Except partitioned Spider table. I will add a fulltext search feature for partitioned Spider table at next release.
- It's available to set monitoring_node for per table, per link_id and per pertition to mysql.spider_link_mon_servers.
- Add table parameter "hs_read_port", "hs_write_port", "use_handler", "use_hs_read", "use_hs_write", "hs_read_socket" and "hs_write_socket".
- Add server parameter "spider_use_handler", "spider_use_hs_read", "spider_use_hs_write", "spider_hs_r_conn_recycle_mode", "spider_hs_r_conn_recycle_strict", "spider_hs_w_conn_recycle_mode" and "spider_hs_w_conn_recycle_strict".
- Add value of 3 to "auto_increment_mode"(table parameter) and "spider_auto_increment_mode"(server parameter).
Vertical Partitioning
- MySQL 5.5 support.
- Support full text search.
Except partitioned VP table. I will add a fulltext search feature for partitioned VP table at next release.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Thanks to Gen, Yoshihiko, Satoko and Makoto for testing and bug reporting for online schema changing.
Thanks to Takahiro and Kazuhide for testing and bug reporting for Spider's HA feature and VP.
Thanks to Kamipo and Laurent for bug report.
Enjoy!
10/17/2010
[MySQL][Spider][VP]Spider-2.23 VP-0.12 released
I'm pleased to announce the release of Spider storage engine version 2.23(beta) and Vertical Partitioning storage engine version 0.12(beta).
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
Spider
- Add server parameter "spider_udf_ct_bulk_insert_interval" and "spider_udf_ct_bulk_insert_rows".
Vertical Partitioning
This release is bug fix release.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Thanks to Gen, Yoshihiko, Satoko and Makoto for testing for clustering and online schema changing.
Thanks to Frederic for bug report.
Enjoy!
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
Spider
- Add server parameter "spider_udf_ct_bulk_insert_interval" and "spider_udf_ct_bulk_insert_rows".
Vertical Partitioning
This release is bug fix release.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Thanks to Gen, Yoshihiko, Satoko and Makoto for testing for clustering and online schema changing.
Thanks to Frederic for bug report.
Enjoy!
8/31/2010
[MySQL][Spider][VP][Other]Spider-2.22 VP-0.11 BKA-for-ha_partition-0.3 released
I'm pleased to announce the release of Spider storage engine version 2.22(beta), Vertical Partitioning storage engine version 0.11(beta) and BKA-for-ha_partition version 0.3.
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
BKA-for-ha_partition is a patch file of supporting "Batched Key Access" for table partitioning feature.
http://launchpad.net/partitionmrrformysql
The main changes in this version are following.
Spider
- MS Windows support.
- Add UDF "spider_copy_tables".
Spider HA feature is now available!
Vertical Partitioning
- MS Windows support.
Pathced MySQL source code and compiled MySQL binary are available from this release.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Thanks to Toru for working for supporting Windows.
Enjoy!
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
BKA-for-ha_partition is a patch file of supporting "Batched Key Access" for table partitioning feature.
http://launchpad.net/partitionmrrformysql
The main changes in this version are following.
Spider
- MS Windows support.
- Add UDF "spider_copy_tables".
Spider HA feature is now available!
Vertical Partitioning
- MS Windows support.
Pathced MySQL source code and compiled MySQL binary are available from this release.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Thanks to Toru for working for supporting Windows.
Enjoy!
5/18/2010
[MySQL][Spider][VP][Other]Spider-2.20 VP-0.10 BKA-for-ha_partition-0.2 released
I'm pleased to announce the release of Spider storage engine version 2.20(beta), Vertical Partitioning storage engine version 0.10(beta) and BKA-for-ha_partition version 0.2.
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
BKA-for-ha_partition is a patch file of supporting "Batched Key Access" for table partitioning feature.
http://launchpad.net/partitionmrrformysql
The main changes in this version are following.
Spider
- "spider_multi_split_read" supports dividing condition count.
From this release, there is "install_spider.sql" file for installing and updating Spider. Please use this file.
Vertical Partitioning
- Support "Batched Key Access".
This feature is now available on MariaDB 5.3 with "join_cache_level=6 and more".
Please see "99_change_logs.txt" in the download documents for checking other changes.
Enjoy!
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
BKA-for-ha_partition is a patch file of supporting "Batched Key Access" for table partitioning feature.
http://launchpad.net/partitionmrrformysql
The main changes in this version are following.
Spider
- "spider_multi_split_read" supports dividing condition count.
From this release, there is "install_spider.sql" file for installing and updating Spider. Please use this file.
Vertical Partitioning
- Support "Batched Key Access".
This feature is now available on MariaDB 5.3 with "join_cache_level=6 and more".
Please see "99_change_logs.txt" in the download documents for checking other changes.
Enjoy!
3/15/2010
[MySQL][Spider][VP]Spider-2.16 Vartical Partitioning-0.9 released
I'm pleased to announce the release of Spider storage engine version 2.16(beta) and Vertical Partitioning storage engine version 0.9(beta).
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
(This release for Vertical Partitioning is a bug fix release)
- Add table parameter "semi_split_read".
- Add server parameter "spider_semi_split_read".
This parameters are for searching performance improvement.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Enjoy!
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
(This release for Vertical Partitioning is a bug fix release)
- Add table parameter "semi_split_read".
- Add server parameter "spider_semi_split_read".
This parameters are for searching performance improvement.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Enjoy!
2/18/2010
[MySQL][VP]VP-0.8 released
I'm pleased to announce the release of Vertical Partitioning storage engine version 0.8(alpha).
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
This release is bug fix release.
Please see "99_change_logs.txt" in the download documents for more detail.
Enjoy!
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
This release is bug fix release.
Please see "99_change_logs.txt" in the download documents for more detail.
Enjoy!
1/31/2010
[MySQL][VP][Other]Start creating Engine Independent Test & VP-0.7 released
I started creating "Engine Independent Test".
http://launchpad.net/engineindependenttestformysql
This test aims to be testable with all storage engines.
There is following wiki but test was not created yet.
http://forge.mysql.com/wiki/EngineIndependentTestSuite
I think this test is need for Storage Engine Developers(including me).
Additionally, I already released 2 Storage Engines so I felt needing this test strongly.
So I started creating "Engine Independent Test".
Please tell me without hesitate if you have a demand.
I'm pleased to announce the release of Vertical Partitioning storage engine version 0.7(alpha).
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
MariaDB support.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Please enjoy and go forward!
http://launchpad.net/engineindependenttestformysql
This test aims to be testable with all storage engines.
There is following wiki but test was not created yet.
http://forge.mysql.com/wiki/EngineIndependentTestSuite
I think this test is need for Storage Engine Developers(including me).
Additionally, I already released 2 Storage Engines so I felt needing this test strongly.
So I started creating "Engine Independent Test".
Please tell me without hesitate if you have a demand.
I'm pleased to announce the release of Vertical Partitioning storage engine version 0.7(alpha).
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
MariaDB support.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Please enjoy and go forward!
10/14/2009
[MySQL][VP]Vartical Partitioning-0.6 released
I'm pleased to announce the release of Vertical Partitioning storage engine version 0.6(alpha).
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
- Add UDF "vp_copy_tables".
This UDF is used for syncronizing Vertical Partitioning's child table data from old child tables to new added child tables.
- Add table parameter "choose_ignore_table_list", "choose_ignore_table_list_for_lock" and "zero_record_update_mode".
This parameters are used for avoiding to use new added child tables at searching operation and separating child tables for searching with lock and without lock.
- Add server parameter "vp_udf_ct_bulk_insert_interval" and "vp_udf_ct_bulk_insert_rows".
This parameters are used for changing the load of updating immediately from vp_copy_tables.
Example
-------------------------------------------------------------------------------
Initial tables:
create table tbl_a(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a),
key idx1(col_c, col_a)
)engine=VP comment='tnl "tbl_b tbl_c"';
Add a table:
alter table tbl_a comment='tnl "tbl_b tbl_c tbl_d", cit "3", cil "3", zru "1"';
Copy table data from tbl_c to tbl_d:
select vp_copy_tables("tbl_a", "tbl_c", "tbl_d");
Finalize:
alter table tbl_a comment='tnl "tbl_b tbl_c tbl_d"';
-------------------------------------------------------------------------------
Please see "99_change_logs.txt" in the download documents for checking other changes.
Enjoy!
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
- Add UDF "vp_copy_tables".
This UDF is used for syncronizing Vertical Partitioning's child table data from old child tables to new added child tables.
- Add table parameter "choose_ignore_table_list", "choose_ignore_table_list_for_lock" and "zero_record_update_mode".
This parameters are used for avoiding to use new added child tables at searching operation and separating child tables for searching with lock and without lock.
- Add server parameter "vp_udf_ct_bulk_insert_interval" and "vp_udf_ct_bulk_insert_rows".
This parameters are used for changing the load of updating immediately from vp_copy_tables.
Example
-------------------------------------------------------------------------------
Initial tables:
create table tbl_a(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a),
key idx1(col_c, col_a)
)engine=VP comment='tnl "tbl_b tbl_c"';
Add a table:
alter table tbl_a comment='tnl "tbl_b tbl_c tbl_d", cit "3", cil "3", zru "1"';
Copy table data from tbl_c to tbl_d:
select vp_copy_tables("tbl_a", "tbl_c", "tbl_d");
Finalize:
alter table tbl_a comment='tnl "tbl_b tbl_c tbl_d"';
-------------------------------------------------------------------------------
Please see "99_change_logs.txt" in the download documents for checking other changes.
Enjoy!
10/05/2009
[MySQL][Spider][VP]Spider-2.5 Vartical Partitioning-0.5 released
I'm pleased to announce the release of Spider storage engine version 2.5(beta) and Vertical Partitioning storage engine version 0.5(alpha).
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
- The standalone compilation with Vertical Partitioning storage engine is now available.
- Vertical Partitioning can be used for multi-step partitioning.
Example:
create table a(a int primary key)engine=myisam;
create table b(a int primary key)engine=vp comment 'tnl "a"';
create table c(a int primary key)engine=vp comment 'tnl "b"';
- Add table parameter "bgs_mode", "bgi_mode" and "bgu_mode".
- Add server parameter "vp_bgs_mode", "vp_bgi_mode" and "vp_bgu_mode".
Parallel search and update from Vertical Partitioning to Spider are now available by using this parameters.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Enjoy!
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
- The standalone compilation with Vertical Partitioning storage engine is now available.
- Vertical Partitioning can be used for multi-step partitioning.
Example:
create table a(a int primary key)engine=myisam;
create table b(a int primary key)engine=vp comment 'tnl "a"';
create table c(a int primary key)engine=vp comment 'tnl "b"';
- Add table parameter "bgs_mode", "bgi_mode" and "bgu_mode".
- Add server parameter "vp_bgs_mode", "vp_bgi_mode" and "vp_bgu_mode".
Parallel search and update from Vertical Partitioning to Spider are now available by using this parameters.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Enjoy!
9/27/2009
[MySQL][Spider][VP]Spider-2.4 Vartical Partitioning-0.4 released
I'm pleased to announce the release of Spider storage engine version 2.4(beta) and Vertical Partitioning storage engine version 0.4(alpha).
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
- "Engine-condition-pushdown" is available on Vertical Partitioning with Spider.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Thanks to Gennady for bug report.
Enjoy!
Spider is a Storage Engine for database sharding.
http://spiderformysql.com/
Vertical Partitioning is a Storage Engine for vertical partitioning for a table.
http://launchpad.net/vpformysql
The main changes in this version are following.
- "Engine-condition-pushdown" is available on Vertical Partitioning with Spider.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Thanks to Gennady for bug report.
Enjoy!
9/21/2009
[MySQL][VP]Vertical Partitioning storage engine 0.3 released
I'm pleased to announce the release of Vertical Partitioning storage engine version 0.3.
http://launchpad.net/vpformysql
The main changes in this version are following.
- Add table parameter "choose_table_mode_for_lock".
- Add server parameter "vp_choose_table_mode_for_lock".
These parameters are used for avoiding deadlock by fixing lock order to table list order.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Enjoy!
http://launchpad.net/vpformysql
The main changes in this version are following.
- Add table parameter "choose_table_mode_for_lock".
- Add server parameter "vp_choose_table_mode_for_lock".
These parameters are used for avoiding deadlock by fixing lock order to table list order.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Enjoy!
7/02/2009
[MySQL][VP]Vertical Partitioning storage engine 0.2 released
I'm pleased to announce the release of Vertical Partitioning storage engine version 0.2.
http://launchpad.net/vpformysql
The main changes in this version are following.
- Support MySQL's table partitioning.
MySQL's table partitioning that is only introduced last release is now supported.
note: After this version, you need to apply a patch for installing Vertical Partitioning storage engine.
- After this version, the primary key part of InnoDB's secondary index is effectively used.
You can use the primary key columns with InnoDB's secondary index by using following statements.
create table tbl_b(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a),
key idx1(col_c)
)engine=InnoDB;
create table tbl_c(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a),
key idx1(col_c)
)engine=InnoDB;
create table tbl_a(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a),
key idx1(col_c, col_a)
)engine=VP comment='table_name_list "tbl_b tbl_c"';
note: Vertical Partitioning storage engine can use index with primary key together with index without primary key, because Vertical Partitioning storage engine can use different storage engines for child tables at same table. In this case, the purpose of writing the column of primary key to tbl_a's idx1 is to absorb the difference by this coexistence.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Enjoy!
http://launchpad.net/vpformysql
The main changes in this version are following.
- Support MySQL's table partitioning.
MySQL's table partitioning that is only introduced last release is now supported.
note: After this version, you need to apply a patch for installing Vertical Partitioning storage engine.
- After this version, the primary key part of InnoDB's secondary index is effectively used.
You can use the primary key columns with InnoDB's secondary index by using following statements.
create table tbl_b(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a),
key idx1(col_c)
)engine=InnoDB;
create table tbl_c(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a),
key idx1(col_c)
)engine=InnoDB;
create table tbl_a(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a),
key idx1(col_c, col_a)
)engine=VP comment='table_name_list "tbl_b tbl_c"';
note: Vertical Partitioning storage engine can use index with primary key together with index without primary key, because Vertical Partitioning storage engine can use different storage engines for child tables at same table. In this case, the purpose of writing the column of primary key to tbl_a's idx1 is to absorb the difference by this coexistence.
Please see "99_change_logs.txt" in the download documents for checking other changes.
Enjoy!
6/25/2009
[MySQL][VP]Vertical Partitioning storage engine 0.1 released
I'm pleased to announce a release of a new storage engine "Vertical Partitioning storage engine".
http://launchpad.net/vpformysql
You can use relation tables of one to one like one table by using Vertical Partitioning storage engine.
It is near by a view of joined relation tables of one to one but different point is following.
- It can insert.
- It can do partition pruning.(Not use partitions that are no necessity)
Vertical Partitioning storage engine can use following purposes.
(Vertical Partitioning table is called "parent table", integrated tables are called "child table")
1.A MySQL's InnoDB table that has the big record size is very slow if a select statement needs table scanning with a lot of records.
Vertical Partitioning is good for resolving this performance problem.
For example, you can solve a performance issue for "select col_d from tbl_a" by using following partitions.
Before partitioning
create table tbl_a(
col_a int primary key,
col_b int,
col_c int,
col_d int,
col_e varchar(255),
col_f varchar(255),
col_g varchar(255),
col_h varchar(255),
col_i varchar(255),
col_j text,
key idx_a(col_b, col_c),
key idx_b(col_c, col_j(100))
)engine=InnoDB;
After partitioning
create table tbl_b(
col_a int primary key,
col_b int,
col_c int,
col_d int,
key idx_a(col_b, col_c)
)engine=InnoDB;
create table tbl_c(
col_a int primary key,
col_c int,
col_e varchar(255),
col_f varchar(255),
col_g varchar(255),
col_h varchar(255),
col_i varchar(255),
col_j text,
key idx_b(col_c, col_j(100))
)engine=InnoDB;
create table tbl_a(
col_a int primary key,
col_b int,
col_c int,
col_d int,
col_e varchar(255),
col_f varchar(255),
col_g varchar(255),
col_h varchar(255),
col_i varchar(255),
col_j text,
key idx_a(col_b, col_c),
key idx_b(col_c, col_j(100))
)engine=VP
comment 'table_name_list "tbl_b tbl_c"';
Note: Vertical Partitioning storage engine can use same column in different child tables. You can use flexible partition design by this feature but you should note that a lot of same columns causes updating performance issues.
2.MySQL Cluster (ndb) is not good for using text columns.
Vertical Partitioning can use different storage engines for one table.
As a result, MySQL Cluster can use only for strong point columns.
Example of mixed storage engines.
create table tbl_b(
col_a int primary key,
col_b int,
col_c int,
key idx_a(col_b, col_c)
)engine=ndb ......;
create table tbl_c(
col_a int primary key,
col_c int,
col_d varchar(255),
col_e text,
key idx_b(col_c, col_e(100))
)engine=Spider ......;
create table tbl_a(
col_a int primary key,
col_b int,
col_c int,
col_d varchar(255),
col_e text,
key idx_a(col_b, col_c),
key idx_b(col_c, col_e(100))
)engine=VP
comment 'table_name_list "tbl_b tbl_c"';
3.MySQL does not support multi shaped partitioning.
Vertical Partitioning storage engine supports multi shaped partitioning.
Multi shaped partitioning is dividing a table by multiple partitioning rules.
You can use tables that dividing into detail information table and index tables like one table by this feature. And you can shard each table by using Spider storage engine.
Before partitioning
create table employees (
id int primary key,
fname varchar(30),
lname varchar(30),
hired date not null default '1970-01-01',
separated date not null default '9999-12-31',
job_code int,
store_id int
)engine=InnoDB;
After partitioning
create table emp_pk (
id int not null,
separated date not null default '9999-12-31',
unique idx_a(id),
key idx_b(id, separated)
)engine=InnoDB
partition by hash(id)
partitions 4;
create table emp_detail (
id int not null,
fname varchar(30),
lname varchar(30),
hired date not null default '1970-01-01',
separated date not null default '9999-12-31',
job_code int,
store_id int,
key idx_a(id, separated)
)engine=InnoDB
partition by range ( year(separated) ) (
partition p0 values less than (1991),
partition p1 values less than (1996),
partition p2 values less than (2001),
partition p3 values less than maxvalue
);
create table employees (
id int not null,
fname varchar(30),
lname varchar(30),
hired date not null default '1970-01-01',
separated date not null default '9999-12-31',
job_code int,
store_id int,
primary key(id, separated)
)engine=VP
comment 'table_name_list "emp_pk emp_detail", pk_correspond_mode "1"';
Note: In this case, parent table's primary key has columns that using both child table partitioning rules for using partition pruning.
(In the future, I will improve this to become "parent table's primary key has only real primary key (id) and child tables can use partition pruning")
4.Vertical Partitioning can add "parallel columns searching" to other storage engines with supporting "parallel searching" like spider storage engine.(Now developping)
5.Vertical Partitioning storage engine can use for partitioning wrapper because Vertical Partitioning storage engine supports MySQL's table partitioning.
You can use each partition like tables by this feature.(Don't use this feature because now developping)
Example
create table tbl_b(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a)
)engine=InnoDB;
create table tbl_c(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a)
)engine=InnoDB;
create table tbl_d(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a)
)engine=InnoDB;
create table tbl_a(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a)
)engine=VP
partition by hash(col_a)
(
partition pt1 comment='table_name_list "tbl_b"',
partition pt2 comment='table_name_list "tbl_c"',
partition pt3 comment='table_name_list "tbl_d"'
);
In this time, Vertical Partitioning storage engine is alpha version and some features can not use yet but I will develop fast for adding features.
Enjoy!
http://launchpad.net/vpformysql
You can use relation tables of one to one like one table by using Vertical Partitioning storage engine.
It is near by a view of joined relation tables of one to one but different point is following.
- It can insert.
- It can do partition pruning.(Not use partitions that are no necessity)
Vertical Partitioning storage engine can use following purposes.
(Vertical Partitioning table is called "parent table", integrated tables are called "child table")
1.A MySQL's InnoDB table that has the big record size is very slow if a select statement needs table scanning with a lot of records.
Vertical Partitioning is good for resolving this performance problem.
For example, you can solve a performance issue for "select col_d from tbl_a" by using following partitions.
Before partitioning
create table tbl_a(
col_a int primary key,
col_b int,
col_c int,
col_d int,
col_e varchar(255),
col_f varchar(255),
col_g varchar(255),
col_h varchar(255),
col_i varchar(255),
col_j text,
key idx_a(col_b, col_c),
key idx_b(col_c, col_j(100))
)engine=InnoDB;
After partitioning
create table tbl_b(
col_a int primary key,
col_b int,
col_c int,
col_d int,
key idx_a(col_b, col_c)
)engine=InnoDB;
create table tbl_c(
col_a int primary key,
col_c int,
col_e varchar(255),
col_f varchar(255),
col_g varchar(255),
col_h varchar(255),
col_i varchar(255),
col_j text,
key idx_b(col_c, col_j(100))
)engine=InnoDB;
create table tbl_a(
col_a int primary key,
col_b int,
col_c int,
col_d int,
col_e varchar(255),
col_f varchar(255),
col_g varchar(255),
col_h varchar(255),
col_i varchar(255),
col_j text,
key idx_a(col_b, col_c),
key idx_b(col_c, col_j(100))
)engine=VP
comment 'table_name_list "tbl_b tbl_c"';
Note: Vertical Partitioning storage engine can use same column in different child tables. You can use flexible partition design by this feature but you should note that a lot of same columns causes updating performance issues.
2.MySQL Cluster (ndb) is not good for using text columns.
Vertical Partitioning can use different storage engines for one table.
As a result, MySQL Cluster can use only for strong point columns.
Example of mixed storage engines.
create table tbl_b(
col_a int primary key,
col_b int,
col_c int,
key idx_a(col_b, col_c)
)engine=ndb ......;
create table tbl_c(
col_a int primary key,
col_c int,
col_d varchar(255),
col_e text,
key idx_b(col_c, col_e(100))
)engine=Spider ......;
create table tbl_a(
col_a int primary key,
col_b int,
col_c int,
col_d varchar(255),
col_e text,
key idx_a(col_b, col_c),
key idx_b(col_c, col_e(100))
)engine=VP
comment 'table_name_list "tbl_b tbl_c"';
3.MySQL does not support multi shaped partitioning.
Vertical Partitioning storage engine supports multi shaped partitioning.
Multi shaped partitioning is dividing a table by multiple partitioning rules.
You can use tables that dividing into detail information table and index tables like one table by this feature. And you can shard each table by using Spider storage engine.
Before partitioning
create table employees (
id int primary key,
fname varchar(30),
lname varchar(30),
hired date not null default '1970-01-01',
separated date not null default '9999-12-31',
job_code int,
store_id int
)engine=InnoDB;
After partitioning
create table emp_pk (
id int not null,
separated date not null default '9999-12-31',
unique idx_a(id),
key idx_b(id, separated)
)engine=InnoDB
partition by hash(id)
partitions 4;
create table emp_detail (
id int not null,
fname varchar(30),
lname varchar(30),
hired date not null default '1970-01-01',
separated date not null default '9999-12-31',
job_code int,
store_id int,
key idx_a(id, separated)
)engine=InnoDB
partition by range ( year(separated) ) (
partition p0 values less than (1991),
partition p1 values less than (1996),
partition p2 values less than (2001),
partition p3 values less than maxvalue
);
create table employees (
id int not null,
fname varchar(30),
lname varchar(30),
hired date not null default '1970-01-01',
separated date not null default '9999-12-31',
job_code int,
store_id int,
primary key(id, separated)
)engine=VP
comment 'table_name_list "emp_pk emp_detail", pk_correspond_mode "1"';
Note: In this case, parent table's primary key has columns that using both child table partitioning rules for using partition pruning.
(In the future, I will improve this to become "parent table's primary key has only real primary key (id) and child tables can use partition pruning")
4.Vertical Partitioning can add "parallel columns searching" to other storage engines with supporting "parallel searching" like spider storage engine.(Now developping)
5.Vertical Partitioning storage engine can use for partitioning wrapper because Vertical Partitioning storage engine supports MySQL's table partitioning.
You can use each partition like tables by this feature.(Don't use this feature because now developping)
Example
create table tbl_b(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a)
)engine=InnoDB;
create table tbl_c(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a)
)engine=InnoDB;
create table tbl_d(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a)
)engine=InnoDB;
create table tbl_a(
col_a int not null,
col_b varchar(20),
col_c int not null,
primary key(col_a)
)engine=VP
partition by hash(col_a)
(
partition pt1 comment='table_name_list "tbl_b"',
partition pt2 comment='table_name_list "tbl_c"',
partition pt3 comment='table_name_list "tbl_d"'
);
In this time, Vertical Partitioning storage engine is alpha version and some features can not use yet but I will develop fast for adding features.
Enjoy!
Subscribe to:
Posts (Atom)