create procedure getInfor2()
BEGIN
declare _abc varchar(200);
declare stopFlag int;
DECLARE cursor_name CURSOR
FOR
select zhuanyuan from server;
DECLARE CONTINUE HANDLER FOR NOT FOUND set stopFlag=1;
OPEN cursor_name;
REPEAT
FETCH cursor_name INTO _abc;
begin
if _abc='root'
then
insert t(s1) values(3333);
end if;
end;
UNTIL stopFlag = 1
END REPEAT;
CLOSE cursor_name;
END; ......
À´×Ô£ºhttp://it.china-b.com/zx/linuxsjk/20090525/24129_1.html
ÕªÒª£ºMySQLÊÇÒ»¸ö¸ßËÙ¶È¡¢¸ßÐÔÄÜ¡¢¶àÏ̵߳ĹØÏµÐÍÊý¾Ý¿â
ÖÎÀíϵͳ£¬ÊÊÓÃÆ½Ì¨¶à£¬¿ÉÀ©Õ¹ÐÔÇ¿¡£ÔÚʵ¼ÊÉú²ú»·¾³ÖУ¬²¿ÊðºÍʵÏÖ¾ßÓÐÒ»¶¨¸ºÔؾùºâ¹¦ÄܵÄMySQL·þÎñÆ÷¼¯Èº£¬¶ÔÓÚÌá¸ßÓû§Êý¾Ý¿â
Ó¦ÓÃϵͳµÄÐÔÄÜ¡¢ËٶȺÍÎȶ¨ÐÔ¾ßÓÐÃ÷ÏÔµÄ×÷Óᣱ¾ÎļòÒª½éÉÜÁËÔÚFreeBSD 7.0-ReleaseϵͳÉϲ¿ÊðʵÏÖMySQL·þÎñÆ÷¼¯ÈºµÄ·½°¸£¬²¢¶Ô¿ÉÄܳöÏÖµÄÎÊÌâÌṩÁËÏàÓ¦µÄ½â¾ö·½·¨¡£
1. ÒýÑÔ
MySQLÊÇÒ»¸ö¸ßËÙ¶È¡¢¸ßÐÔÄÜ¡¢¶àÏ̡߳¢¿ª·ÅÔ´´úÂ룬½¨Á¢ÔÚ¿Í»§/·þÎñÆ÷½á¹¹ÉϵĹØÏµÐÍÊý¾Ý¿â
ÖÎÀíϵͳ¡£ËüʼÓÚ1979Ä꣬×î³õÊÇMichael WideniusΪÈðµäTcX¹«Ë¾´´½¨µÄUNIREGÊý¾Ý¿â
ϵ
ͳ£¬µ±Ê±µÄUNIREGûÓÐSQL½Ó¿Ú£¬ÏÞÖÆÁËËüµÄÓ¦Óá£1996Äê5Ô£¬Widenius¿ª·¢³öÁËMySQLµÄ×î³õ°æ±¾£¬¿ªÊ¼ÔÚInternetÉϹ«¿ª
·¢ÐС£MySQLµÄ¿ª·¢ÈËÔ±´ÓÒ»¿ªÊ¼¾ÍÒ»Ö±¹Ø×¢ËüµÄÐÔÄÜ£¬Îª´Ë²»Ï§ÌØÐÔ¼¯£¬Ö±µ½½ñÌ죬MySQLÒÀÈ»±£³Ö±¾É«£¬ÒÔ¸ßËٶȸßÐÔÄÜΪÊ×ÒªÔÔò¡£Ëæ×Åʱ¼äµÄÍÆ
ÒÆ£¬MySQLÒ²¼ÓÈëÁË´óÐÍÊý¾Ý¿â
²úÆ·µÄ¸ß¼¶ÌØÐÔ£¬Èç´æ´¢¹ý³Ì¡¢ÊÓͼ¡¢´¥·¢Æ÷µÈ£¬Ê¹ÆäÔÚÆóÒµ¼¶Êý¾Ý¿â
ϵͳÖпªÊ¼±»²¿ÊðÓ¦Óá£2008Äê10Ô£¬SUN¹«Ë¾ÊÕ¹ºÁËMySQL AB¹«Ë¾£¬¿ªÊ¼½øÈ뿪ԴÁìÓò¡£Ëæ×ÅÖØ ......
×î½üÓõ½ÁËÒ»¿îÊý¾Ý¿âͼÐλ¯¹ÜÀí¹¤¾ßNavicat for MySQL £¬Ê¹ÓÃÖ®ºóÓÐÒ»Öָоõ£ºÔÀ´±à³Ì¿ÉÒԺܸßЧ£¡
ÒÔǰʹÓÃMySQLʱ£¬Ã¿´Î¶¼Ö»ÄÜÔÚÀàËÆDOSµÄ½çÃæ¿ª·¢£¬Ê¹Óùٷ½ÌṩµÄ¹¤¾ßºÜÈÝÒ׾ͱ»¿¨µ½ÁË£¬¾õµÃ»¹ÊÇ×ÖÌõ½çÃæ±È½Ï¸ßЧ£¬µ«ÊdzõѧMySQL,ºÜ¶à¹¦Äܶ¼»¹Ã»ÓÐÍêÈ«Çå³þ£¬Ê¹Óð²È«ÐÔÉϵĿ¼ÂÇÒ²²»¹»³ÉÊì¡£ÕâʱºòÎÒ¿ªÊ¼ÕÒÆäËüµÄ¹¤¾ß¡£
¸ù¾ÝÍøÉϺܶàÅóÓѵĽéÉÜ£¬ÎÒÊÔÓÃÁËSQLyog£¬²úƷʹÓÃËÙ¶ÈͦºÃ¡£µ«ÊÇËüµÄ½çÃæ²Ëµ¥Í¼±ê±È½ÏС£¬µ¼Èëµ¼³ö¸ñʽ±È½ÏÉÙ£¬¶øÇÒ¶ÔÖÐÎÄÖ§³ÖЧ¹û²»ÀíÏ룬ËùÒÔºóÀ´»»ÁËÁíÍâµÄÒ»¿î¹¤¾ßMySQL-Front£¬ºóÀ´²ÅÖªµÀ£¬Õ⹤¾ßÖ§³ÖµÄ¶«Î÷ºÜÉÙ£¬»ù±¾Éϲ»ÄÜÂú×ãÎҵĺܶàÐèÇó£¡
ºÜ¾Ãºó£¬½Ó´¥µ½ÁËÖйúÏã¸ÛµÄÒ»¼ÒרÃÅ¿ª·¢Êý¾Ý¿â¹ÜÀí¹¤¾ßµÄÈí¼þ¹«Ë¾¿ª·¢µÄNavicatϵÁС£µ½Ä¿Ç°ÎªÖ¹£¬ÔÚMYSQLµÄͼÐλ¯¹ÜÀí¹¤¾ßÖУ¬²î²»¶àËüÊÇ×îºÏÊʵġ£¼È¿ÉÒÔ°ïÖú³õ¼¶µÄ¶«Î÷£¬Í¬Ê±Ôڸ߼¶¹ÜÀí¼°°²È«´¦ÀíÉ϶¼±È½ÏÈ«Ãæ£¬ÄѹÖËüÊÇMySQLÈ«ÇòÏÂÔØÊ¹ÓÃÓû§×î¶àµÄͼÐλ¯¹ÜÀí¹¤¾ß¡£ËüÖ§³ÖµÄ¹¦Äܷdz£È«Ã棬ËÙ¶È·´Ó¦Ò²Ìرð¿ì£¬×ÔÈ»¹¤×÷ÇáËɶàÁË£¬¿ÉÒÔÀûÓøü¶àµÄʱ¼äÈ¥ÏëÈçºÎ¹ÜÀíÕâЩ¹¤×÷¡£¸ù±¾¾Í²»ÓÃΪ¼Ç²»×¡´úÂ룬¹¦Äܶø·¢³î£¬ÓÈÆäÊÇËüµÄ¿çƽ̨ÐÔ£¬Ö§³ÖÈýÖÖÆ½Ì¨- Microsoft Window ......
select * for updateËø±íµÄÎÊÌâ
ÓÉÓÚInnoDBÔ¤ÉèÊÇRow-Level Lock£¬ËùÒÔÖ»ÓС¸Ã÷È·¡¹µÄÖ¸¶¨Ö÷¼ü£¬MySQL²Å»áÖ´ÐÐRow lock (Ö»Ëø×¡±»Ñ¡È¡µÄ×ÊÁÏÀý) £¬·ñÔòMySQL½«»áÖ´ÐÐTable Lock (½«Õû¸ö×ÊÁÏ±íµ¥¸øËø×¡)¡£
¾Ù¸öÀý×Ó:
¼ÙÉèÓиö±íµ¥products £¬ÀïÃæÓÐid¸úname¶þ¸öÀ¸Î»£¬idÊÇÖ÷¼ü¡£
Àý1: (Ã÷È·Ö¸¶¨Ö÷¼ü£¬²¢ÇÒÓд˱Ê×ÊÁÏ£¬row lock)
SELECT * from products WHERE id='3' FOR UPDATE;
Àý2: (Ã÷È·Ö¸¶¨Ö÷¼ü£¬Èô²éÎ޴˱Ê×ÊÁÏ£¬ÎÞlock)
SELECT * from products WHERE id='-1' FOR UPDATE;
Àý2: (ÎÞÖ÷¼ü£¬table lock)
SELECT * from products WHERE name='Mouse' FOR UPDATE;
Àý3: (Ö÷¼ü²»Ã÷È·£¬table lock)
SELECT * from products WHERE id<>'3' FOR UPDATE;
Àý4: (Ö÷¼ü²»Ã÷È·£¬table lock)
SELECT * from products WHERE id LIKE '3' FOR UPDATE;
×¢1: FOR UPDATE½öÊÊÓÃÓÚInnoDB£¬ÇÒ±ØÐëÔÚ½»Ò×Çø¿é(BEGIN/COMMIT)ÖвÅÄÜÉúЧ¡£
×¢2: Òª²âÊÔ
Ëø¶¨µÄ×´¿ö£¬¿ÉÒÔÀûÓÃMySQLµÄCommand Mode £¬¿ª¶þ¸öÊÓ´°À´×ö²âÊÔ¡£
......
MySQL5.X¶¼ÒѾ·¢²¼ºÃ¾ÃÁË£¬µ«ÊÇ»¹ÓкܶàÈËÈÏΪMySQLÊDz»Ö§³ÖÊÂÎñ´¦ÀíµÄ£¬Õâ²»µÃ²»¹ÖËûÃÇÊǹª¹ÑÎŵ쬯äʵ£¬Ö»ÒªÄãµÄMySQL°æ±¾
Ö§³ÖBDB»òInnoDB±íÀàÐÍ£¬ÄÇôÄãµÄMySQL¾Í¾ßÓÐÊÂÎñ´¦ÀíµÄÄÜÁ¦¡£ÕâÀïÃæ£¬ÓÖÒÔInnoDB±íÀàÐÍÓõÄ×î¶à£¬ËäÈ»ºóÀ´·¢ÉúÁËÖîÈçOracleÊÕ
¹ºInnoDBµÈÁîMySQL²»Ë¬µÄÊÂÇ飬µ«ÄÇЩÉÌÒµÉϵĶ·ÕùÓë¼¼ÊõÎ޹أ¬ÏÂÃæÒÔInnoDB±íÀàÐÍΪÀý¼òµ¥ËµÒ»ÏÂMySQLÖеÄÊÂÎñ¡£
ÏÈÀ´Ã÷È·Ò»ÏÂÊÂÎñÉæ¼°µÄÏà¹ØÖªÊ¶£º
ÊÂÎñ¶¼Ó¦¸Ã¾ß±¸ACIDÌØÕ÷¡£ËùνACIDÊÇAtomic£¨Ô×ÓÐÔ£©£¬Consistent£¨Ò»ÖÂÐÔ£©£¬Isolated£¨¸ôÀëÐÔ£©£¬Durable£¨³ÖÐøÐÔ£©Ëĸö´ÊµÄÊ××ÖĸËùд£¬ÏÂÃæÒÔ“ÒøÐÐתÕʔΪÀýÀ´·Ö±ð˵Ã÷Ò»ÏÂËüÃǵĺ¬Ò壺
Ô×ÓÐÔ£º×é³ÉÊÂÎñ´¦ÀíµÄÓï¾äÐγÉÁËÒ»¸öÂß¼µ¥Ôª£¬²»ÄÜÖ»Ö´ÐÐÆäÖеÄÒ»²¿·Ö¡£»»¾ä»°Ëµ£¬ÊÂÎñÊDz»¿É·Ö¸îµÄ×îСµ¥Ôª¡£±ÈÈç£ºÒøÐÐתÕʹý³ÌÖУ¬±ØÐëͬʱ´ÓÒ»¸öÕÊ»§¼õȥתÕʽð¶î£¬²¢¼Óµ½ÁíÒ»¸öÕÊ»§ÖУ¬Ö»¸Ä±äÒ»¸öÕÊ»§ÊDz»ºÏÀíµÄ¡£
Ò»ÖÂÐÔ£ºÔÚÊÂÎñ´¦ÀíÖ´ÐÐǰºó£¬Êý¾Ý¿âÊÇÒ»Öµġ£Ò²¾ÍÊÇ˵£¬ÊÂÎñÓ¦¸ÃÕýÈ·µÄת»»ÏµÍ³×´Ì¬¡£±ÈÈç£ºÒøÐÐתÕʹý³ÌÖУ¬ÒªÃ´×ªÕʽð¶î´ÓÒ»¸öÕÊ»§×ªÈëÁíÒ»¸öÕÊ»§£¬ÒªÃ´Á½¸öÕÊ»§¶¼²»±ä£¬Ã»ÓÐÆäËûµÄÇé¿ö¡£
¸ôÀëÐÔ£ºÒ»¸öÊÂÎñ´¦Àí¶ÔÁíÒ»¸öÊÂÎñ´¦Àíà ......
MYSQLÓв»Í¬ÀàÐ͵ÄÈÕÖ¾Îļþ(¸÷×Ô´æ´¢Á˲»Í¬ÀàÐ͵ÄÈÕÖ¾)£¬´ÓËüÃǵ±ÖпÉÒÔ²éѯµ½MYSQLÀï¶¼×öÁËЩʲô£¬¶ÔÓÚMYSQLµÄ¹ÜÀí¹¤×÷£¬ÕâЩÈÕÖ¾ÎļþÊDz»¿ÉȱÉٵġ£
1.´íÎóÈÕÖ¾(The error log)£º¼Ç¼ÁËÊý¾Ý¿âÆô¶¯¡¢ÔËÐÐÒÔ¼°Í£Ö¹¹ý³ÌÖдíÎóÐÅÏ¢£»
2.ISAM²Ù×÷ÈÕÖ¾(The isam log)£º¼Ç¼ÁËËùÓжÔISAM±íµÄÐ޸쬏ÃÈÕÖ¾½ö½öÓÃÓÚµ÷ÊÔISAMģʽ£»
3.SQLÖ´ÐÐÈÕÖ¾(The query log)£º¼Ç¼Á˿ͻ§¶ËµÄÁ¬½ÓÒÔ¼°ËùÖ´ÐеÄSQLÓï¾ä£»
4.¸üÐÂÈÕÖ¾(The update log)£º¼Ç¼Á˸ıäÊý¾ÝµÄÓï¾ä£¬ÒѾ²»½¨ÒéʹÓã¬Óɶþ½øÖÆÈÕÖ¾Ìæ´ú£»
5.¶þ½øÖÆÈÕÖ¾(The binary log)£º¼Ç¼ÁËËùÓжÔÊý¾Ý¿âÊý¾ÝµÄÐÞ¸ÄÓï¾ä£»
6.³¬Ê±ÈÕÖ¾(The slow log)£º¼Ç¼ËùÓÐÖ´ÐÐʱ¼ä³¬¹ý×î´óSQLÖ´ÐÐʱ¼ä(long_query_time)»òδʹÓÃË÷ÒýµÄÓï¾ä£»
Èç¹ûÄãÊÇÔÚÓÃmysqlµÄ¸´ÖÆ¡¢±¸·Ý¹¦ÄÜ£¬ÄÇô´Ó·þÎñÆ÷»¹ÌṩÁËÒ»ÖÖ½Ð×örelay logµÄÈÕÖ¾Îļþ¡£
ĬÈÏÇé¿öÏÂËùÓÐÈÕÖ¾Îļþ»á¼Ç¼ÔÚMYSQLµÄÊý¾ÝĿ¼Ï£¬Äã¿ÉÒÔͨ¹ýÇ¿ÖÆmysqlÈ¥¹Ø±Õ²¢ÖØÐ´ò¿ªÒ»¸öÎļþ½øÐÐÈÕÖ¾¼Ç¼£¬µ±È»ÏµÍ³»á×Ô¶¯¼Óºó׺
(Èç.00001, .00002)£¬·½Ê½ÓÐÔÚmysql»·¾³ÏÂÖ´ÐÐÓï¾ä mysql>flush logs;
»òÕßͨ¹ýmysqladmin¹ÜÀí³ÌÐòÖ´ÐÐ #mysqladmin flush-logs »ò #mysqladmin refresh
ÕâЩÈÕÖ¾µÄÆ ......