MySQL Partition
×÷ÕߣºÀÏÍõ Èý¹úÑÝÒ忪ƪһÓïµÀÆÆ£ººÏ¾Ã±Ø·Ö£¡MySQLµÄʹÓÃÒàÊÇÈç´Ë£¬Ãæ¶ÔÓ¦ÓÃÖÐÔ½À´Ô½ÅÓ´óµÄÊý¾ÝÁ¿£¬×îʱ÷ֵĽâ¾ö·½°¸ÊÇShard£¬²»¹ýËüµÄ¸´ÔÓÐÔ²¢²»ÊÇÿ¸ö³ÌÐòÔ±¶¼ÄܼÝÔ¦µÄ£¬Èç¹û°Ñ¼Ü¹¹µÄÑݱä±È×÷ÉúÃüµÄ½ø»¯£¬ÄÇôShard¿ÉÒÔ¿´×öÊDz¸È鶯ÎºÜ¶à¼Ü¹¹×îºóÖ®ËùÒÔʧ°Ü£¬¾ÍÊÇÒòΪËüÃDz½×ÓÂõµÃÌ«´ó£¬Ïë´ÓÔʼÉúÃüÖ±½Ó½ø»¯³É²¸È鶯ÎÊâ²»ÖªÕâÖм仹ÓÐÅÀÐж¯ÎïµÈ±Ø¾½×¶Î¡£
ÔÚMySQLûÓÐÖ§³ÖPartition֮ǰ£¬Èç¹ûÏë°ÑÊý¾Ý·Ö¶øÖÎÖ®£¬¿ÉÒÔʹÓÃMySQLÌṩµÄMergeµÄÒýÇæ£¬Àý×Ó£º
ÏȽ¨Á¢Á½¸ö½á¹¹Ò»ÑùµÄMyISAM±í£º
CREATE TABLE foo_1 (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
created DATETIME
) ENGINE=MyISAM;
CREATE TABLE foo_2 (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
created DATETIME
) ENGINE=MyISAM;
ÔÙ½¨Á¢MERGE±í£º
CREATE TABLE foo (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
created DATETIME
) ENGINE=MERGE UNION=(foo_1, foo_2) INSERT_METHOD=LAST;
¶Ôµ÷ÓÃÕß¶øÑÔ£¬MERGE±í¾ÍÏñÒ»¸öUNIONÓï¾äÒ»Ñù£¬ÕâÑùȷʵºÜ·½±ã£¬²»¹ýËüÓкܶàÈõµã£º
Ê×ÏÈ£¬Ëü²»ÊÇÍêȫ͸Ã÷µÄ£¬ÐèÒªÓÐÈô¸É»ù´¡±í£¨foo_1£¬foo_2£©µÄ´æÔÚ£¬¶øÇÒ»ù´¡±í±ØÐëÊÇMyISAM±íÀàÐÍ£¬ÁíÍ⣬¶ÔÓÚMERGEÀ´Ëµ£¬²»Ö§³ÖÔ¼Êø£¬±ÈÈçÉÏÃæµÄfoo±í¶¨ÒåÖУ¬ËäÈ»°Ñid¶¨ÒåΪÖ÷¼ü£¬µ«ÊÇÈç¹ûÎÒÃÇÔÚfoo_1ºÍfoo_2·Ö±ð²åÈëÒ»¸öÏàͬidµÄ»°£¬foo±íÒ²²»»á±¨´í¡£
ÑÔ¹éÕý´«£¡MySQL´Ó5.1.3¿ªÊ¼Ö§³ÖPartition£¬Äã¿ÉÒÔʹÓÃÈçÏÂÃüÁîÀ´È·ÈÏÄãµÄ°æ±¾ÊÇ·ñÖ§³ÖPartition£º
mysql> SHOW VARIABLES LIKE '%partition%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| have_partitioning | YES |
+-------------------+-------+
MySQLÖ§³ÖRANGE£¬LIST£¬HASH£¬KEY·ÖÇøÀàÐÍ£¬ÆäÖÐÒÔRANGE×îΪ³£Óãº
CREATE TABLE foo (
id INT NOT NULL AUTO_INCREMENT,
created DATETIME,
PRIMARY KEY(id, created)
) ENGINE=INNODB PARTITION BY RANGE (TO_DAYS(created)) (
PARTITION foo_1 VALUES LESS THAN (TO_DAYS('2009-01-01')),
PARTITION foo_2 VALUES LESS THAN (TO_DAYS('2010-01-01'))
)
¼´±ã´´½¨Íê·ÖÇø£¬Ò²¿ÉÒÔÔÚºóÆÚ¹ÜÀí£¬±ÈÈç˵Ìí¼ÓÒ»¸öеķÖ
Ïà¹ØÎĵµ£º
ÔËÐгÌÐò¿ÉÄܻᱨ´í£ºCan’t connect to local MySQL Server through socket ‘/tmp/mysql.sock’
Õâ¸ö´íÎóµÄÌáʾÊÇ˵£¬²»ÄÜͨ¹ý’/tmp/mysql.sock’Á¬½Óµ½·þÎñÆ÷¡£Mysql.sockÊÇ´´½¨Óëmysqld·þÎñÆ÷Ïà¹ØµÄMySQLͨÐŶ˵ãËùʹÓõÄÌ×½Ó×Ö¡£¶øPHP±ê×¼ÅäÖÃÕýÊÇͨ¹ý’/tmp/mysql.sock’À´Á¬½Ó ......
ÎÊÌâ½â¾öÁË£¬ÔÒòÊÇÔÚmy.cnfÖÐȱÉÙÁËÈçÏ´úÂ룺
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
Èç¹û²»¼ÓÒÔÉÏ´úÂ룬ÄÇô¼´±ãMYSQL±àÒ밲װʱָ¶¨µÄ±àÂëÊÇUTF8£¬ÄÇôÔÚ½¨¿âʱÆäĬÈϱàÂëÈÔÊÇLATIN1£¬¶øÓÉÓÚ×Ö·û¼¯µÄ¼Ì³ÐÐÔ£¬¿âÖеıíÒ²ÊÇLATIN1µÄÁË¡£
ÕâÀïÁм¸ÌõÃüÁ´ó¼Ò¿ÉÒÔ×Ô¼ºÊÔÏ ......
Ò»¡¢Êý×ÖÀàÐÍ
ËùνµÄ“Êý×ÖÀà”£¬¾ÍÊÇÖ¸ DECIMAL ºÍ
NUMERIC£¬ËüÃÇÊÇͬһÖÖÀàÐÍ¡£ËüÑϸñµÄ˵²»ÊÇÒ»ÖÖÊý×ÖÀàÐÍ£¬ÒòΪËûÃÇʵ¼ÊÉÏÊǽ«Êý×ÖÒÔ×Ö·û´®ÐÎʽ±£´æµÄ£»ËûµÄÖµµÄÿһ루°üÀ¨Ð¡Êýµã£©Õ¼Ò»¸ö×ֽڵĴ洢¿Õ¼ä£¬Òò´ËÕâÖÖÀàÐͺķѿռä±È½Ï´ó¡£µ«ÊÇËüµÄÒ»¸öÍ»³öµÄÓŵãÊÇСÊýµÄλÊý¹Ì¶¨£¬ÔÚÔËËãÖв»»á“ʧ ......
ÔÚÍøÉÏÕÒÁ˺ܾã¬ÎÄÕ¶¼ÊÇÄ㳡¢ÎÒ³Äã¡£¿´À´¿´È¥¶¼Ò»ÑùµÄ£¬googleÍùºó·NÒ³ ½øÈ¥Ò»¿´¶¼ÊÇÒ»ÑùµÄ¡£ÓôÃÆÖÁ¼«¡£ ÓÚÉÏÊÇCSDNÂÛ̳ÇóÖú£¬»¹ÊÇjava\web̳×ÓÀïµÄÅóÓÑÈÈÇéЩ£¬ÖÕÓÚËãÊǸãºÃÁË£¬×Ô¼ºÔÙÊÔÁËÏ£¬°ÑÐĵ÷¢³öÀ´´ó¼ÒÖ¸µãÖ¸µã¡£ 1¡¢mysql-connector-java-5.0.8-bin.jarÎļþ£¬Ò²¾ÍÊÇmysqlÇý¶¯°ü¡£×¢Ò⣺Ҫ·Åµ½tomcat ......
Äã¿ÉÒÔ´´½¨Ò»¸öÎı¾Îļþ“pet.txt”£¬Ã¿Ðаüº¬Ò»¸ö¼Ç¼£¬Óö¨Î»·û(tab)°ÑÖµ·Ö¿ª£¬²¢ÇÒÒÔCREATE TABLEÓï¾äÖÐÁгöµÄÁдÎÐò¸ø³ö¡£¶ÔÓÚ¶ªÊ§µÄÖµ(ÀýÈçδ֪µÄÐԱ𣬻òÈÔÈ»»î×ŵ͝ÎïµÄËÀÍöÈÕÆÚ)£¬Äã¿ÉÒÔʹÓÃNULLÖµ¡£ÎªÁËÔÚÄãµÄÎı¾ÎļþÖбíʾÕâЩÄÚÈÝ£¬
ʹÓÃ\N£¨·´Ð±Ïߣ¬×ÖĸN£©¡£ÀýÈ磬WhistlerÄñµÄ¼Ç¼ӦΪ(ÕâÀïÖµÖ® ......