½üÀ´¶Ôphp±È½Ï¸ÐÐËȤ£¬¾Í¶Ï¶ÏÐøÐøµÄ»¨ÁËÁ½¸öÐÇÆÚµÄʱ¼ä°ÑÕû¸öphp¿ª·¢ÐèÒªÓõ½µÄ¶«Î÷¶¼×°ºÃÁË£¬´ó¸ÅµÄ°²×°¹ý³ÌÈçÏ¡£
Ò»¡¢°²×°µÄÈí¼þ:
Apache: 2.2.14
PHP:5.2.12
MySQL:5.1.42¡£
SVN:1.5.6
PHPMyAdmin:3.2.5
Zend Studio: 7.1
Zend Debugger: 5.1.14
¶þ¡¢°²×°¹ý³Ì£º
1. °²×°ºÍÅäÖÃapache
°²×°£ºÊ×ÏÈ´Óhttp://apache.etoak.com/httpd/binaries/win32/apache_2.2.14-win32-x86-openssl-0.9.8k.msiÏÂÔØapacheµÄwindows°²×°°æ±¾£¬Ë«»÷°²×°³ÌÐò£¬Ëü½«Òýµ¼ÄãÍê³ÉÕû¸ö°²×°¹ý³Ì£¬Çë±£Ö¤ÄãÊäÈëµÄ·þÎñÆ÷urlÊÇÕýÈ·µÄ¡£ÔÚ°²×°¹ý³ÌÖУ¬Î¨Ò»ÐèҪעÒâµÄ¾ÍÊÇÈç¹ûÒѾÓÐÒ»¸öIIS»òÕ߯äËüµÄ³ÌÐòʹÓÃÁË80¶Ë¿Ú£¬ÄÇô°²×°»áʧ°Ü¡£Èç¹ûÕâÑù£¬Çëµ½³ÌÐòµÄĿ¼Ï£¨±¾ÀýΪ£ºD:\Program Files\Apache Software Foundation\Apache2.2£©£¬ÕÒµ½confĿ¼£¬´ò¿ªÎļþhttpd.conf£¬½«ÆäÖеÄÒ»ÐÐListen 80¸ÄΪһ¸öû±»Õ¼ÓõĶ˿ڣ¬Èç±¾ÀýΪListen 8080¡£È»ºóÔÙÖØÐÂÔËÐа²×°³ÌÐò£¬Õâ´ÎÓ¦¸Ã¾ÍûÎÊÌâÁË
°²×°½áÊøºóÔÚä¯ÀÀÆ÷ÊäÈëhttp://localhost:8080£¬Èç¹û³ÊÏÖÁËÒ»¸öÒѾÅäÖúõÄÍøÕ¾£¬ÄÇô¹§Ï²Ä㣬ÄãµÄapache¾ÍËã°²×°³ÉÁË¡£
ÅäÖãºapacheµÄÅäÖù¤×÷Ö÷ÒªÊÇÐÞ¸Ähttpd.conf¡£ ´ò¿ªApacheµÄ°²×°Ä¿Â¼, ÕÒµ½Îļ ......
½üÀ´¶Ôphp±È½Ï¸ÐÐËȤ£¬¾Í¶Ï¶ÏÐøÐøµÄ»¨ÁËÁ½¸öÐÇÆÚµÄʱ¼ä°ÑÕû¸öphp¿ª·¢ÐèÒªÓõ½µÄ¶«Î÷¶¼×°ºÃÁË£¬´ó¸ÅµÄ°²×°¹ý³ÌÈçÏ¡£
Ò»¡¢°²×°µÄÈí¼þ:
Apache: 2.2.14
PHP:5.2.12
MySQL:5.1.42¡£
SVN:1.5.6
PHPMyAdmin:3.2.5
Zend Studio: 7.1
Zend Debugger: 5.1.14
¶þ¡¢°²×°¹ý³Ì£º
1. °²×°ºÍÅäÖÃapache
°²×°£ºÊ×ÏÈ´Óhttp://apache.etoak.com/httpd/binaries/win32/apache_2.2.14-win32-x86-openssl-0.9.8k.msiÏÂÔØapacheµÄwindows°²×°°æ±¾£¬Ë«»÷°²×°³ÌÐò£¬Ëü½«Òýµ¼ÄãÍê³ÉÕû¸ö°²×°¹ý³Ì£¬Çë±£Ö¤ÄãÊäÈëµÄ·þÎñÆ÷urlÊÇÕýÈ·µÄ¡£ÔÚ°²×°¹ý³ÌÖУ¬Î¨Ò»ÐèҪעÒâµÄ¾ÍÊÇÈç¹ûÒѾÓÐÒ»¸öIIS»òÕ߯äËüµÄ³ÌÐòʹÓÃÁË80¶Ë¿Ú£¬ÄÇô°²×°»áʧ°Ü¡£Èç¹ûÕâÑù£¬Çëµ½³ÌÐòµÄĿ¼Ï£¨±¾ÀýΪ£ºD:\Program Files\Apache Software Foundation\Apache2.2£©£¬ÕÒµ½confĿ¼£¬´ò¿ªÎļþhttpd.conf£¬½«ÆäÖеÄÒ»ÐÐListen 80¸ÄΪһ¸öû±»Õ¼ÓõĶ˿ڣ¬Èç±¾ÀýΪListen 8080¡£È»ºóÔÙÖØÐÂÔËÐа²×°³ÌÐò£¬Õâ´ÎÓ¦¸Ã¾ÍûÎÊÌâÁË
°²×°½áÊøºóÔÚä¯ÀÀÆ÷ÊäÈëhttp://localhost:8080£¬Èç¹û³ÊÏÖÁËÒ»¸öÒѾÅäÖúõÄÍøÕ¾£¬ÄÇô¹§Ï²Ä㣬ÄãµÄapache¾ÍËã°²×°³ÉÁË¡£
ÅäÖãºapacheµÄÅäÖù¤×÷Ö÷ÒªÊÇÐÞ¸Ähttpd.conf¡£ ´ò¿ªApacheµÄ°²×°Ä¿Â¼, ÕÒµ½Îļ ......
MySQL³£ÓõĴ洢ÒýÇæÎªMyISAM¡¢InnoDB¡¢MEMORY¡¢MERGE£¬ÆäÖÐInnoDBÌṩÊÂÎñ°²È«±í£¬ÆäËû´æ´¢ÒýÇæ¶¼ÊÇ·ÇÊÂÎñ°²È«±í¡£
MyISAMÊÇMySQLµÄĬÈÏ´æ´¢ÒýÇæ¡£MyISAM²»Ö§³ÖÊÂÎñ¡¢Ò²²»Ö§³ÖÍâ¼ü£¬µ«Æä·ÃÎÊËٶȿ죬¶ÔÊÂÎñÍêÕûÐÔûÓÐÒªÇó¡£
InnoDB´æ´¢ÒýÇæÌṩÁ˾ßÓÐÌá½»¡¢»Ø¹öºÍ±ÀÀ£»Ö¸´ÄÜÁ¦µÄÊÂÎñ°²È«¡£µ«ÊÇ±ÈÆðMyISAM´æ´¢ÒýÇæ£¬InnoDBдµÄ´¦ÀíЧÂʲîһЩ²¢ÇÒ»áÕ¼Óøü¶àµÄ´ÅÅ̿ռäÒÔ±£ÁôÊý¾ÝºÍË÷Òý¡£
MEMORY´æ´¢ÒýÇæÊ¹ÓôæÔÚÄÚ´æÖеÄÄÚÈÝÀ´´´½¨±í¡£Ã¿¸öMEMORY±íֻʵ¼Ê¶ÔÓ¦Ò»¸ö´ÅÅÌÎļþ¡£MEMORYÀàÐ͵ıí·ÃÎʷdz£µÃ¿ì£¬ÒòΪËüµÄÊý¾ÝÊÇ·ÅÔÚÄÚ´æÖе쬲¢ÇÒĬÈÏʹÓÃHASHË÷Òý¡£µ«ÊÇÒ»µ©·þÎñ¹Ø±Õ£¬±íÖеÄÊý¾Ý¾Í»á¶ªÊ§µô¡£
MERGE´æ´¢ÒýÇæÊÇÒ»×éMyISAM±íµÄ×éºÏ£¬ÕâЩMyISAM±í±ØÐë½á¹¹ÍêÈ«Ïàͬ¡£MERGE±í±¾ÉíûÓÐÊý¾Ý£¬¶ÔMERGEÀàÐÍµÄ±í½øÐвéѯ¡¢¸üС¢É¾³ýµÄ²Ù×÷£¬¾ÍÊǶÔÄÚ²¿µÄMyISAM±í½øÐеġ£
MyISAM±í»¹Ö§³Ö3Öв»Í¬µÄ´æ´¢¸ñʽ£º
1 ¾²Ì¬±í
2 ¶¯Ì¬±í
3 ѹËõ±í
¾²Ì¬±íÊÇĬÈϵĴ洢¸ñʽ£¬¾²Ì¬±íÖеÄ×ֶζ¼ÊǷDZ䳤µÄ×ֶΣ¬ÓŵãÊÇ£º´æ´¢·Ç³£Ñ¸ËÙ£¬ÈÝÒ×»º´æ£¬³öÏÖ¹ÊÕÏÈÝÒ×»Ö¸´£»È±µãÊÇ£ºÕ¼ÓõĿռäͨ³£±È¶¯Ì¬±í¶à¡££¨×¢Ò⣺ Ôڴ洢ʱ£¬ÁеĿí¶È²» ......
轉×Ô»¨開µÄµØ·½
mysqlÓÐÒ»¸ö¹¦ÄܾÍÊÇ¿ÉÒÔlogÏÂÀ´ÔËÐеıȽÏÂýµÄsqlÓï¾ä£¬Ä¬ÈÏÊÇûÓÐÕâ¸ölogµÄ£¬ÎªÁË¿ªÆôÕâ¸ö¹¦ÄÜ£¬ÒªÐÞ¸Ämy.cnf»òÕßÔÚmysqlÆô¶¯
µÄʱºò¼ÓÈëһЩ²ÎÊý¡£
Èç¹ûÔÚmy.cnfÀïÃæÐ޸ģ¬ÐèÔö¼ÓÈçϼ¸ÐÐ
long_query_time = 1
log-slow-queries
=
log-queries-not-using-indexes
long_query_time
ÊÇÖ¸Ö´Ðг¬¹ý¶à¾ÃµÄsql»á±»logÏÂÀ´£¬ÕâÀïÊÇ1Ãë¡£
log-slow-queries
ÉèÖðÑÈÕ־дÔÚÄÇÀ¿ÉÒÔΪ¿Õ£¬ÏµÍ³»á¸øÒ»¸öȱʡµÄÎļþlog-queries-not-using-indexes ¾ÍÊǼͼûʹÓÃË÷ÒýµÄsql
·Ö
Îö£º
mysqldumpslow –helpÒÔÏ£¬Ö÷ÒªÓõÄÊÇ
-s ORDER what to sort by (t, at,
l, al, r, ar etc), ‘at’ is default
-t NUM just show the top n
queries
-g PATTERN grep: only consider stmts that include this
string
-s£¬ÊÇorderµÄ˳Ðò£¬ËµÃ÷дµÄ²»¹»Ïêϸ£¬°³ÓÃÏÂÀ´£¬°üÀ¨¿´ÁË´úÂ룬Ö÷ÒªÓÐ
c,t,l,rºÍ
ac,at,al,ar£¬·Ö±ðÊǰ´ÕÕquery´ÎÊý£¬Ê±¼ä£¬lockµÄʱ¼äºÍ·µ»ØµÄ¼Ç¼ÊýÀ´ÅÅÐò£¬Ç°Ãæ¼ÓÁËaµÄʱµ¹Ðð
-t£¬ÊÇtop
nµÄÒâ˼£¬¼´Îª·µ»ØÇ°Ãæ¶àÉÙÌõµÄÊý¾Ý
-g£¬ºó±ß¿ÉÒÔдһ¸öÕýÔòÆ¥Åäģʽ£¬´óСд²»Ãô¸ÐµÄ
mysql ......
mysqlËø»úÖÆ
mysqlÖÐ¶Ô±í¼¶µÄ´æ´¢ÒýÇæÀ´ËµÊÇÊÍ·ÅËÀËøµÄ£¬±ÜÃâËÀËø¿ÉÒÔÕâÑù×öµ½:ÔÚÈκβéѯ֮ǰÏÈÇëÇóËø£¬²¢ÇÒ°´ÕÕÇëÇóµÄ˳ÐòËø±í¡£
MysqlÖÐÓÃÓÚwrite(д)µÄ±íËøµÄʵÏÖ»úÖÆÈçÏ£º
Èç¹û±íûÓмÓËø£¬ÄÇô¾Í¼ÓÒ»¸öÐ´Ëø¡£·ñÔòµÄ»°£¬½«ÇëÇó·Åµ½Ð´Ëø¶ÓÁÐÖС£
mysqlÖÐÓÃÓÚread(¶Á)µÄ±íËøµÄʵÏÖ»úÖÆÈçÏ£º
Èç¹û±íûÓмÓËø£¬ÄÇô¾Í¼ÓÒ»¸ö¶ÁËø¡£·ñÔòµÄ»°£¬½«ÇëÇó·Åµ½¶ÁËø¶ÓÁÐÖС£
±È·½ËµÒ»¿ªÊ¼Ã»ÓÐËø£¬ÎÒ¶ÁÊý¾Ý£¬Õâʱ¾Í¼ÓÒ»¸ö¶ÁËø£¬ÕâʱÈç¹ûÀ´¸öд²Ù×÷£¬ÄÇô¾Í°Ñд²Ù×÷ÇëÇó·Åµ½Ð´Ëø¶ÓÁÐÖС£
±È·½ËµÒ»¿ªÊ¼Ã»ÓÐËø£¬ÎÒд²Ù×÷£¬Õâʱ¾Í¼ÓÒ»¸öÐ´Ëø£¬ÕâʱÈç¹ûÀ´¸ö¶Á²Ù×÷£¬ÄÇô¾Í°Ñ¶Á²Ù×÷ÇëÇó·Åµ½¶ÁËø¶ÓÁÐÖС£
µ±ËøÊͷźó£¬Ð´Ëø¶ÓÁÐÖеÄÏ߳̿ÉÒÔÓÃÕâ¸öËø×ÊÔ´£¬È»ºó²ÅÂÖµ½¶ÁËø¶ÓÁÐÖеÄÏ̡߳£
Õâ¾ÍÊÇ˵£¬Èç¹û±íÀïÓкܶà¸üвÙ×÷µÄ»°£¬ÄÇôselect±ØÐëµÈµ½ËùÓеĸüж¼Íê³ÉÁËÖ®ºó²ÅÄÜ¿ªÊ¼¡£
ÈÃselectËٶȾ¡Á¿¿ì£¬Õâ¿ÉÄÜÐèÒª´´½¨Ò»Ð©ÕªÒª±í¡£
ÒÔÏÂÊÇmysqlËøµÄһЩ½¨Ò飺
Ö»Òª¶Ôͬһ¸ö±íûÓдóÁ¿µÄ¸üкͲéѯ²Ù×÷»ìÔÚÒ»Æð£¬Ä¿Ç°µÄÓû§²¢²»ÊÇÎÊÌâ¡£
Ö´ÐÐLOCK TABLESÀ´Ìá¸ßËÙ¶È(ºÜ¶à¸üвÙ×÷·ÅÔÚÒ»¸öËøÖÐ ±ÈûÓÐËøµÄ ºÜ¶à¸üпì¶àÁË),½«Êý¾Ý²ð·Ö¿ªµ½¶à¸ö±íÖпÉÄÜÒ²ÓаïÖú¡£
µ±mysqlÅöµ½ÓÉÓÚ ......
×öÏîĿʱÓÉÓÚÒµÎñÂß¼µÄÐèÒª£¬±ØÐë¶ÔÊý¾Ý±íµÄÒ»Ðлò¶àÐмÓÈëÐÐËø£¬¾Ù¸ö×î¼òµ¥µÄÀý×Ó£¬Í¼Êé½èÔÄϵͳ¡£¼ÙÉè id=1 µÄÕâ±¾Êé¿â´æÎª 1 £¬µ«ÊÇÓÐ 2 ¸öÈËͬʱÀ´½èÕâ±¾Ê飬´Ë´¦µÄÂ߼Ϊ :
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 µÄÊéûÓÐ¿â´æ ÁË£¬¿ÉÊÇÊý¾Ý¿âÄĶ®ÕâЩ£¬Êý¾Ý¿âÖ»¸ºÔðÖ´ÐÐÒ»ÌõÌõ SQL Óï¾ä£¬Ëü²Å²»¹ÜÖмäÓÐûÓÐÆäËû sql Óï¾ä²å½øÀ´£¬ËüÒ²²»ÖªµÀÒª°ÑÒ»¸ö session µÄ sql Óï¾äÖ´ÐÐÍêÔÙÖ´ÐÐÁíÒ»¸ö session µÄ¡£Òò´Ë»áµ¼Ö²¢·¢µÄʱºò restnum ×îºóµÄ½á¹ûΪ -1 £¬ÏÔÈ»ÕâÊDz»ºÏÀíµÄ£¬ËùÒÔ£¬²Å³öÏÖËøµÄ¸ÅÄ Mysql ʹÓà innodb ÒýÇæ¿ÉÒÔͨ¹ýË÷Òý ¶ÔÊý¾ÝÐмÓËø¡£ÒÔÉϽèÊéµÄÓï¾ä±äΪ£º
......
The vs2008 and vs2010 don't support the generation LINQ to SQL business objects from a MySQL database, if you drop a MySql table to a Linq to Sql Class, it will popup a "The selected object(s) use an unsupported data provider" error.
Generation tool DBLinq
DbLinq is a LINQ to SQL data context provider and allows you to create LINQ to SQL business objects from a MySQL database and perform LINQ queries directly against MySQL tables. Utilizing LINQ, it functions in the same way as a typical SQL Server data layer.
a) Download DBLinq from: http://code.google.com/p/dblinq2007/downloads/list
b) Run the LINQ to SQL generation tool DbMetal.exe as follows:
DbMetal.exe -provider=MySql -database:MyDatebase -server:you host computer -user:mysql user -password:you pwd -namespace:mysqllinq -code:mysqllinq.cs -sprocs
Modify the generated file
The generated file can't be use in project right now, we must take some modification on it.
a) Delect all code with #if !MONO_STRICT(take MONO_ ......