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'))
)
¼´±ã´´½¨Íê·ÖÇø£¬Ò²¿ÉÒÔÔÚºóÆÚ¹ÜÀí£¬±ÈÈç˵Ìí¼ÓÒ»¸öеķÖ
Ïà¹ØÎĵµ£º
½ñÌìºÍһλ¼Ü¹¹Ê¦ÁÄÁËһЩÎÊÌ⣬ºÜżȻµÄ˵³öÁËÒ»¸öÊÂÇ飬ÎұȽϸÐÐËȤÓÚÊǼǼһÏ£º
1£ºÎÒÃǶ¼ÖªµÀmysqlÏ µÄINNODBºÍMYISAMÁ½ÖÖÒýÇ棬ÆäÖÐINNODB¾ßÓÐÊÂÎï¹ÜÀí¡£ËùÒÔINNODBϲÙ×÷ºÍMYISAMϲÙ×÷£¬µ¥´¿µÄ´Ó²åÈëÊý¾Ý¿âÉÏ˵£¬INNDODBµÄ¿É¿¿£¬²éѯÉÏ˵MYISAMµÄÒª¿ì¡£
2£º»ùÓÚÉÏÃæµÄÌØÐÔ£¬ÒÔ¼°MYSQLjuyouµÄÖ÷´Ó»úÖÆ£¬ÎÒÃÇ¿ÉÒ ......
¼ÙÈçÎÒÓиöuser±í,ÎÒÏë²éѯ·ûºÏijЩÌõ¼þµÄµÚ50¸öÓû§¿ªÊ¼µÄ10¸öÓû§,ÇÒ²»ÄÜʹÓÃidºÅbetween andÄÇÑù²éѯ,Ó¦¸ÃÔõôдSQLÓï¾ä?
¡¡¡¡ÔÚmysqlÊý¾Ý¿âÖÐÓÐlimit,offsetÓï¾ä¿ÉÒÔ·½±ãµÄʵÏÖ,ÄÇôÔÚSQL serverÖÐÄØ?SQL ServerÊÇ·ñÖ§³ÖlimitºÍoffsetÓï¾äÄØ?
select top 10 * from
(select top 60 * from [user] order by userid) a ......
Äã¿ÉÒÔ´´½¨Ò»¸öÎı¾Îļþ“pet.txt”£¬Ã¿Ðаüº¬Ò»¸ö¼Ç¼£¬Óö¨Î»·û(tab)°ÑÖµ·Ö¿ª£¬²¢ÇÒÒÔCREATE TABLEÓï¾äÖÐÁгöµÄÁдÎÐò¸ø³ö¡£¶ÔÓÚ¶ªÊ§µÄÖµ(ÀýÈçδ֪µÄÐԱ𣬻òÈÔÈ»»î×ŵĶ¯ÎïµÄËÀÍöÈÕÆÚ)£¬Äã¿ÉÒÔʹÓÃNULLÖµ¡£ÎªÁËÔÚÄãµÄÎı¾ÎļþÖбíʾÕâЩÄÚÈÝ£¬
ʹÓÃ\N£¨·´Ð±Ïߣ¬×ÖĸN£©¡£ÀýÈ磬WhistlerÄñµÄ¼Ç¼ӦΪ(ÕâÀïÖµÖ® ......