http://book.51cto.com/art/200803/68118.htm
ÕªÒª£º¡¶ÉîÈëdz³öMySQL——Êý¾Ý¿â¿ª·¢¡¢ÓÅ»¯Óë¹ÜÀíά»¤¡·´ÓÊý¾Ý¿âµÄ»ù´¡¡¢¿ª·¢¡¢ÓÅ»¯¡¢¹ÜÀí4·½Ãæ¶ÔMySQL½øÐÐÁËÏêϸµÄ½éÉÜ£¬ÆäÖÐÿһ²¿·Ö¶¼¶ÀÁ¢³Éƪ£¬Ã¿Ò»ÆªÓÖ°üÀ¨¶à¸öÕ½ڡ£±¾ÊéÃæÏòʵÓã¬ÄÚÈݸ²¸Ç¹ã·º£¬½²½âÓÉdzÈëÉÊʺÏÓÚ¸÷¸ö²ã´ÎµÄ¶ÁÕß¡£
µÚ20ÕÂ ËøÎÊÌâ
ËøÊǼÆËã»úе÷¶à¸ö½ø³Ì»òÏ̲߳¢·¢·ÃÎÊijһ×ÊÔ´µÄ»úÖÆ¡£ÔÚÊý¾Ý¿âÖУ¬³ý´«Í³µÄ¼ÆËã×ÊÔ´£¨ÈçCPU¡¢RAM¡¢I/OµÈ£©µÄÕùÓÃÒÔÍ⣬Êý¾ÝÒ²ÊÇÒ»ÖÖ¹©Ðí¶àÓû§¹²ÏíµÄ×ÊÔ´¡£ÈçºÎ±£Ö¤Êý¾Ý²¢·¢·ÃÎʵÄÒ»ÖÂÐÔ¡¢ÓÐЧÐÔÊÇËùÓÐÊý¾Ý¿â±ØÐë½â¾öµÄÒ»¸öÎÊÌâ£¬Ëø³åͻҲÊÇÓ°ÏìÊý¾Ý¿â²¢·¢·ÃÎÊÐÔÄܵÄÒ»¸öÖØÒªÒòËØ¡£´ÓÕâ¸ö½Ç¶ÈÀ´Ëµ£¬Ëø¶ÔÊý¾Ý¿â¶øÑÔÏÔµÃÓÈÆäÖØÒª£¬Ò²¸ü¼Ó¸´ÔÓ¡£±¾ÕÂÎÒÃÇ×ÅÖØÌÖÂÛMySQLËø»úÖÆµÄÌØµã£¬³£¼ûµÄËøÎÊÌ⣬ÒÔ¼°½â¾öMySQLËøÎÊÌâµÄһЩ·½·¨»ò½¨Òé¡£
20.1 MySQLËø¸ÅÊö
Ïà¶ÔÆäËûÊý¾Ý¿â¶øÑÔ£¬MySQLµÄËø»úÖÆ±È½Ï¼òµ¥£¬Æä×îÏÔÖøµÄÌØµãÊDz»Í¬µÄ´æ´¢ÒýÇæÖ§³Ö²»Í¬µÄËø»úÖÆ¡£±ÈÈ磬MyISAMºÍMEMORY´æ´¢ÒýÇæ²ÉÓõÄÊÇ±í¼¶Ëø£¨table-level locking£©£»BDB´æ´¢ÒýÇæ²ÉÓõÄÊÇÒ³ÃæËø£¨page-level locking£©£¬µ«Ò²Ö§³Ö±í¼¶Ëø£»InnoDB´æ´¢ÒýÇæ¼ÈÖ§³ÖÐм¶Ëø£¨row-level locking£©£¬Ò²Ö§³Ö± ......
Twitter¹«Ë¾Ò»Î»Ãû½ÐRyan KingµÄ¹¤³ÌʦÈÕǰÏò²©¿ÍMyNoSQL͸¶£¬¹«Ë¾¼Æ»®´ÓMySQLÇ¨ÒÆµ½CassandraÊý¾Ý¿â£¬ÒòΪºóÕß¾ßÓиü´óµÄµ¯ÐÔ¡¢¿ÉÀ©Õ¹ÐԺʹóÁ¿µÄÉçÇøÍøÂ翪Դ¿ª·¢ÈËÔ±¡£
ÎÒÃÇÓдóÁ¿µÄÊý¾Ý£¬ÔÚÊý¾Ý¾Þ´ó£¬Ôö³¤ÂÊÕýÔÚ¼ÓËÙµÄÇé¿öÏ£¬ÎÒÃÇÐèÒªÒ»¸öϵͳ£¬Ëü¿ÉÒÔ¸üΪ×Ô¶¯»¯£¬²¢¸ß¶È¿É¿¿¡¢¿ÉÓá£Ryan King±íʾ¡£
Ïà¹ØÊý¾ÝÏÔʾ£¬ÔÚ2009ÄêÀTwitterÓû§Êý´Ó1Ô·ݵÄÿÌìÔ¼ 200ÍòÈË£¬¼¤ÔöÖÁ12Ô·ݵÄÿÌì½ü5000ÍòÈË¡£Ã¿ÌìµÇ½TwitterµÄÓû§ÊýÁ¿Ôö³¤ÒѾ³¬¹ýÁË20±¶¡£
ÊÂʵÉÏ£¬¶ÔÓÚÊìÁ·µÄ³ÌÐòÔ±À´Ëµ£¬ËùνµÄNoSQLÊý¾Ý¿â¿ÉÒÔÌá¸ßÐÔÄܺͿÉÀ©Õ¹ÐÔ£¬ÕâʹµÃËüÃÇÎüÒýÏû·ÑÕßµÄÍøÂçÊÀ½ç¡£
ÏñFacebookºÍTwitter£¬ÒÔ¼°×î³õµÄWeb 2.0µÄ³è¶ùDigg£¬Ò²Õý´ÓMySQLÊý¾Ý¿âÇ¨ÒÆµ½CassandraÊý¾Ý¿â¡£
Ryan King±íʾ£¬ÊÔÑé·¢ÏÖ£¬CassandraÊý¾Ý¿â±ÈMySQL¸ü¾ßÓпÉÀ©Õ¹ÐÔ¡¢¿É¿¿ºÍ¸üÒ×ÓÚ¹ÜÀí¡£
°Ñ×°ÓÐËùÓÐtweetsºÍ retweetsÐÅÏ¢µÄÆ½Ì¨Ç¨ÒÆµ½CassandraÉÏÈ¥£¬ÕâÊÇTwitterµÄµ±Ç°ÒªÎñ¡£Ryan King˵¡£ÔÚÕâÖ®ºó£¬ÎÒÃǽ«¿ªÊ¼°ÑһЩеÄÏîÄ¿Ç¨ÒÆµ½Cassandra»òÕ߯äËûµÄƽ̨¡£ ......
Beware of MySQL Data Truncation
http://www.mysqlperformanceblog.com/2009/02/07/beware-of-mysql-data-truncation/
±ÈÈ磺ÓÐÒ»¸ö±íaritcleºÍÁíÒ»¸ö±íarticle_comment£¬¹ØÁªÊÇarticleµÄid
CREATE TABLE `article` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
CREATE TABLE `article_comment` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`text` varchar(200) NOT NULL,
`article_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `art_id` (`article_id`),
CONSTRAINT `art_id` FOREIGN KEY (`article_id`) REFERENCES `article` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
set sql_mode='';
insert into article values(12345678901,'name1');
insert into article_comment(text,article_id) values('text1',12345678901);
insert into article_comment(text,article_id) values('text2',12345678902);
²é¿´Êý¾Ý£º
article±í
4294967295 name1
article_commen ......
Accessing Distributed Data with the Federated Storage Engine
http://dev.mysql.com/tech-resources/articles/mysql-federated-storage.html
Federated´æ´¢ÒýÇæ¿ÉÒÔʹ¼¸Ì¨Êý¾Ý¿âÂß¼ÉÏ×é³ÉÒ»¸öÊý¾Ý¿â£¬Æä×÷ÓÃÏ൱ÓÚOracleµÄÊý¾Ý¿âÁ´½Ó£¬Í¨Ë×µØËµ£¬¼´ÔÚ±¾µØ½¨Á¢Ô¶³ÌµÄÊý¾Ý¿â±íµÄÒýÓá£
MysqlÐèÒª5.0ÒÔÉÏ
£¨1£©²é¿´ÊÇ·ñ°²×°ÁËfederatedÒýÇæ
show engines;
Engine Support Comment Transactions XA Savepoints
MEMORY YES Hash based, stored in memory, useful for temporary tables NO NO NO
FEDERATED NO Federated MySQL storage engine
MyISAM YES Default engine as of MySQL 3.23 with great performance NO NO NO
BLACKHOLE YES /dev/null storage engine (anything you write to it disappears) NO NO NO
MRG_MYISAM YES Collection of identical MyISAM tables NO NO NO
CSV YES CSV storage engine NO NO NO
ARCHIVE YES Archive storage engine&n ......
µÚÒ»ÕС¢mysql·þÎñµÄÆô¶¯ºÍÍ£Ö¹
net stop mysql
net start mysql
µÚ¶þÕС¢µÇ½mysql
Óï·¨ÈçÏ£º mysql -uÓû§Ãû -pÓû§ÃÜÂë
¼üÈëÃüÁîmysql -uroot -p£¬ »Ø³µºóÌáʾÄãÊäÈëÃÜÂ룬ÊäÈë12345£¬È»ºó»Ø³µ¼´¿É½øÈëµ½mysqlÖÐÁË£¬mysqlµÄÌáʾ·ûÊÇ£º
mysql>
×¢Ò⣬Èç¹ûÊÇÁ¬½Óµ½ÁíÍâµÄ»úÆ÷ÉÏ£¬ÔòÐèÒª¼ÓÈëÒ»¸ö²ÎÊý-h»úÆ÷IP
µÚÈýÕС¢Ôö¼ÓÐÂÓû§
¸ñʽ£ºgrant ȨÏÞ on Êý¾Ý¿â.* to Óû§Ãû@µÇ¼Ö÷»ú identified by "ÃÜÂë"
È磬Ôö¼ÓÒ»¸öÓû§user1ÃÜÂëΪpassword1£¬ÈÃÆä¿ÉÒÔÔÚ±¾»úÉϵǼ£¬ ²¢¶ÔËùÓÐÊý¾Ý¿âÓвéѯ¡¢²åÈë¡¢Ð޸ġ¢É¾³ýµÄȨÏÞ¡£Ê×ÏÈÓÃÒÔrootÓû§Á¬Èëmysql£¬È»ºó¼üÈëÒÔÏÂÃüÁ
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
Èç¹ûÏ£Íû¸ÃÓû§Äܹ»ÔÚÈκλúÆ÷Éϵǽmysql£¬Ôò½«localhost¸ÄΪ"%"¡£
Èç¹ûÄã²»Ïëuser1ÓÐÃÜÂ룬¿ÉÒÔÔÙ´òÒ»¸öÃüÁÃÜÂëÈ¥µô¡£
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";
µÚËÄÕУº ²Ù×÷Êý¾Ý¿â
µÇ¼µ½mysqlÖУ¬È»ºóÔÚmysqlµÄÌáʾ·ûÏÂÔËÐÐÏÂÁÐÃüÁÿ¸öÃüÁîÒԷֺŽáÊø¡£
1¡¢ ÏÔʾÊý¾Ý¿âÁÐ±í¡£
show databases;
ȱʡÓÐÁ½¸öÊý¾Ý¿â£º ......
×öÏîĿʱÓÉÓÚÒµÎñÂß¼µÄÐèÒª£¬±ØÐë¶ÔÊý¾Ý±íµÄÒ»Ðлò¶àÐмÓÈëÐÐËø£¬¾Ù¸ö×î¼òµ¥µÄÀý×Ó£¬Í¼Êé½èÔÄϵͳ¡£¼ÙÉè id=1 µÄÕâ±¾Êé¿â´æÎª 1 £¬µ«ÊÇÓÐ 2 ¸öÈËͬʱÀ´½èÕâ±¾Ê飬´Ë´¦µÄÂ߼Ϊ
view plaincopy to clipboardprint?
Select restnum from book where id =1 ;
-- Èç¹û restnum ´óÓÚ 0 £¬Ö´ÐÐ update
Update book set restnum=restnum-1 where id=1 ;
Select restnum from book where id =1 ;
-- Èç¹û restnum ´óÓÚ 0 £¬Ö´ÐÐ update
Update book set restnum=restnum-1 where id=1 ;
ÎÊÌâ¾ÍÀ´ÁË£¬µ± 2 ¸öÈËͬʱÀ´½èµÄʱºò£¬ÓпÉÄܵÚÒ»¸öÈËÖ´ÐÐ select Óï¾äµÄʱºò£¬µÚ¶þ¸öÈ˲åÁ˽øÀ´£¬ÔÚµÚÒ»¸öÈËûÀ´µÃ¼°¸üРbook ±íµÄʱºò£¬µÚ¶þ¸öÈ˲鵽Êý¾ÝÁË£¬ÆäʵÊÇÔàÊý¾Ý£¬ÒòΪµÚÒ»¸öÈË»á°Ñ restnum Öµ¼õ 1 £¬Òò´ËµÚ¶þ¸öÈ˱¾À´Ó¦¸ÃÊDz鵽 id=1 µÄÊé restnum Ϊ 0 ÁË£¬Òò´Ë²»»áÖ´ÐÐ update £¬¶ø»á¸æËßËü id=1 µÄÊéûÓÐ¿â´æ ÁË£¬¿ÉÊÇÊý¾Ý¿âÄĶ®ÕâЩ£¬Êý¾Ý¿âÖ»¸ºÔðÖ´ÐÐÒ»ÌõÌ ......