锘??xml version="1.0" encoding="utf-8" standalone="yes"?>影音先锋女人AV鲁色资源网久久,色偷偷偷久久伊人大杳蕉,亚洲国产精品无码久久久蜜芽 http://www.shnenglu.com/wmuu/archive/2008/01/11/40943.html鍚瑧鍗婃鐧?/dc:creator>鍚瑧鍗婃鐧?/author>Fri, 11 Jan 2008 01:55:00 GMThttp://www.shnenglu.com/wmuu/archive/2008/01/11/40943.htmlhttp://www.shnenglu.com/wmuu/comments/40943.htmlhttp://www.shnenglu.com/wmuu/archive/2008/01/11/40943.html#Feedback0http://www.shnenglu.com/wmuu/comments/commentRss/40943.htmlhttp://www.shnenglu.com/wmuu/services/trackbacks/40943.html  緋葷粺鎻愮ず絎︿笅 mysql --user=root -p
   use mysql
GRANT ALL PRIVILEGES ON *.* TO root@finapp IDENTIFIED BY "123"
grant all privieges on database.table to user@IpOrName identified by "password"









]]>
MySQL鎬ц兘浼樺寲鐩稿叧(杞? 浣滆咃細andyaohttp://www.shnenglu.com/wmuu/archive/2008/01/09/40838.html鍚瑧鍗婃鐧?/dc:creator>鍚瑧鍗婃鐧?/author>Wed, 09 Jan 2008 15:52:00 GMThttp://www.shnenglu.com/wmuu/archive/2008/01/09/40838.htmlhttp://www.shnenglu.com/wmuu/comments/40838.htmlhttp://www.shnenglu.com/wmuu/archive/2008/01/09/40838.html#Feedback0http://www.shnenglu.com/wmuu/comments/commentRss/40838.htmlhttp://www.shnenglu.com/wmuu/services/trackbacks/40838.html鍘熸枃link: http://andyao.javaeye.com/admin/show/144033
杞澆璇風暀鍚?br>
1. 綆浠?/strong>
鍦╓eb搴旂敤紼嬪簭浣撶郴鏋舵瀯涓紝鏁版嵁鎸佷箙灞傦紙閫氬父鏄竴涓叧緋繪暟鎹簱錛夋槸鍏抽敭鐨勬牳蹇冮儴鍒嗭紝瀹冨緋葷粺鐨勬ц兘鏈夐潪甯擱噸瑕佺殑褰卞搷銆侻ySQL鏄洰鍓嶄嬌鐢ㄦ渶澶氱殑寮婧愭暟鎹簱錛屼絾鏄疢ySQL鏁版嵁搴撶殑榛樿璁劇疆鎬ц兘闈炲父鐨勫樊錛屼粎浠呮槸涓涓帺鍏鋒暟鎹簱銆傚洜姝ゅ湪浜у搧涓嬌鐢∕ySQL鏁版嵁搴撳繀欏昏繘琛屽繀瑕佺殑浼樺寲銆?br>浼樺寲鏄竴涓鏉傜殑浠誨姟錛屾湰鏂囨弿榪癕ySQL鐩稿叧鐨勬暟鎹簱璁捐鍜屾煡璇紭鍖栵紝鏈嶅姟鍣ㄧ浼樺寲錛屽瓨鍌ㄥ紩鎿庝紭鍖栥?br>
2. 鏁版嵁搴撹璁″拰鏌ヨ浼樺寲
鍦∕ySQL Server鎬ц兘璋冧紭涓紝棣栧厛瑕佽冭檻鐨勫氨鏄疍atabase Schema璁捐錛岃繖涓鐐規槸闈炲父閲嶈鐨勩備竴涓碂緋曠殑Schema璁捐鍗充嬌鍦ㄦц兘璋冧紭鐨凪ySQL Server涓婅繍琛岋紝涔熶細琛ㄧ幇鍑哄緢宸殑鎬ц兘錛涘拰Schema鐩鎬技錛屾煡璇㈣鍙ョ殑璁捐涔熶細褰卞搷MySQL鐨勬ц兘錛屽簲璇ラ伩鍏嶅啓鍑轟綆鏁堢殑SQL鏌ヨ銆傝繖涓鑺傚皢璇︾粏璁ㄨ榪欎袱鏂歸潰鐨勪紭鍖栥?br>
2.1 Schema Design
Schema鐨勪紭鍖栧彇鍐充簬灝嗚榪愯浠涔堟牱鐨剄uery錛屼笉鍚岀殑query浼氭湁涓嶅悓鐨凷chema浼樺寲鏂規銆?.2鑺傚皢浠嬬粛Query Design鐨勪紭鍖栥係chema璁捐鍚屾牱鍙楀埌棰勬湡鏁版嵁闆嗗ぇ灝忕殑褰卞搷銆係chema璁捐鏃朵富瑕佽冭檻錛氭爣鍑嗗寲錛屾暟鎹被鍨嬶紝绱㈠紩銆?br>
2.1.1 鏍囧噯鍖?/font>

鏍囧噯鍖栨槸鍦ㄦ暟鎹簱涓粍緇囨暟鎹殑榪囩▼銆傚叾涓寘鎷紝鏍規嵁璁捐瑙勫垯鍒涘緩琛ㄥ茍鍦ㄨ繖浜涜〃闂村緩绔嬪叧緋伙紱閫氳繃鍙栨秷鍐椾綑搴︿笌涓嶄竴鑷寸浉鍏蟲э紝璇ヨ璁¤鍒欏彲浠ュ悓鏃朵繚鎶ゆ暟鎹茍鎻愰珮鏁版嵁鐨勭伒媧繪с傞氬父鏁版嵁搴撴爣鍑嗗寲鏄鏁版嵁搴撹璁$鍚堟煇涓綰у埆鐨勮寖寮忥紝閫氬父婊¤凍絎笁鑼冨紡鍗沖彲銆備篃鏈夌鍥涜寖寮忥紙涔熺О涓?Boyce Codd鑼冨紡錛孊CNF)錛変笌絎簲鑼冨紡瀛樺湪錛屼絾鏄湪瀹為檯璁捐涓緢灝戣冭檻銆傚拷瑙嗚繖浜涜鍒欏彲鑳戒嬌寰楁暟鎹簱鐨勮璁′笉澶畬緹庯紝浣嗚繖涓嶅簲褰卞搷鍔熻兘銆?br>鏍囧噯鍖栫殑鐗圭偣錛?br>
1) 鎵鏈夌殑“瀵硅薄”閮藉湪瀹冭嚜宸辯殑table涓紝娌℃湁鍐椾綑銆?br>2) 鏁版嵁搴撻氬父鐢盓-R鍥劇敓鎴愩?br>3) 綆媧侊紝鏇存柊灞炴ч氬父鍙渶瑕佹洿鏂板緢灝戠殑璁板綍銆?br>4) Join鎿嶄綔姣旇緝鑰楁椂銆?br>5) Select錛宻ort浼樺寲鎺柦姣旇緝灝戙?br>6) 閫傜敤浜嶰LTP搴旂敤銆?br>
闈炴爣鍑嗗寲鐨勭壒鐐癸細
1) 鍦ㄤ竴寮犺〃涓瓨鍌ㄥ緢澶氭暟鎹紝鏁版嵁鍐椾綑銆?br>2) 鏇存柊鏁版嵁寮閿寰堝ぇ錛屾洿鏂頒竴涓睘鎬у彲鑳戒細鏇存柊寰堝琛紝寰堝璁板綍銆?br>3) 鍦ㄥ垹闄ゆ暟鎹槸鏈夊彲鑳戒涪澶辨暟鎹?br>4) Select錛宱rder鏈夊緢澶氫紭鍖栫殑閫夋嫨銆?br>5) 閫傜敤浜嶥SS搴旂敤銆?br>

鏍囧噯鍖栧拰闈炴爣鍑嗗寲閮芥湁鍚勮嚜鐨勪紭緙虹偣錛岄氬父鍦ㄤ竴涓暟鎹簱璁捐涓彲浠ユ販鍚堜嬌鐢紝涓閮ㄥ垎琛ㄦ牸鏍囧噯鍖栵紝涓閮ㄥ垎琛ㄦ牸淇濈暀涓浜涘啑浣欐暟鎹細
1) 瀵筄LTP浣跨敤鏍囧噯鍖栵紝瀵笵SS浣跨敤闈炴爣鍑嗗寲
2) 浣跨敤鐗╁寲瑙嗗浘銆侻ySQL涓嶇洿鎺ユ敮鎸佽鏁版嵁搴撶壒鎬э紝浣嗘槸鍙互鐢∕yISAM琛ㄤ唬鏇褲?br>3) 鍐椾綑涓浜涙暟鎹湪琛ㄦ牸涓紝渚嬪灝唕ef_id鍜宯ame瀛樺湪鍚屼竴寮犺〃涓備絾鏄娉ㄦ剰鏇存柊闂銆?br>4) 瀵逛簬涓浜涚畝鍗曠殑瀵硅薄錛岀洿鎺ヤ嬌鐢╲alue浣滀負寤恒備緥濡侷P address絳?br>5) Reference by PRIMARY/UNIQUE KEY銆侻ySQL鍙互浼樺寲榪欑鎿嶄綔錛屼緥濡傦細
java 浠g爜
  1. select city_name
  2. from city,state
  3. where state_id=state.id and state.code=‘CA’” converted to “select city_name from city where state_id=12

2.1.2 鏁版嵁綾誨瀷
鏈鍩烘湰鐨勪紭鍖栦箣涓灝辨槸浣胯〃鍦ㄧ鐩樹笂鍗犳嵁鐨勭┖闂村敖鍙兘灝忋傝繖鑳藉甫鏉ユц兘闈炲父澶х殑鎻愬崌錛屽洜涓烘暟鎹皬錛岀鐩樿鍏ヨ緝蹇紝騫朵笖鍦ㄦ煡璇㈣繃紼嬩腑琛ㄥ唴瀹硅澶勭悊鎵鍗犵敤鐨勫唴瀛樻洿灝戙傚悓鏃訛紝鍦ㄦ洿灝忕殑鍒椾笂寤虹儲寮曪紝绱㈠紩涔熶細鍗犵敤鏇村皯鐨勮祫婧愩?br>鍙互浣跨敤涓嬮潰鐨勬妧鏈彲浠ヤ嬌琛ㄧ殑鎬ц兘鏇村ソ騫朵笖浣垮瓨鍌ㄧ┖闂存渶灝忥細
1) 浣跨敤姝g‘鍚堥傜殑綾誨瀷錛屼笉瑕佸皢鏁板瓧瀛樺偍涓哄瓧絎︿覆銆?br>2) 灝藉彲鑳藉湴浣跨敤鏈鏈夋晥(鏈灝?鐨勬暟鎹被鍨嬨侻ySQL鏈夊緢澶氳妭鐪佺鐩樼┖闂村拰鍐呭瓨鐨勪笓涓氬寲綾誨瀷銆?br>3) 灝藉彲鑳戒嬌鐢ㄨ緝灝忕殑鏁存暟綾誨瀷浣胯〃鏇村皬銆備緥濡傦紝MEDIUMINT緇忓父姣擨NT濂戒竴浜涳紝鍥犱負MEDIUMINT鍒椾嬌鐢ㄧ殑絀洪棿瑕佸皯25%銆?br>4) 濡傛灉鍙兘錛屽0鏄庡垪涓篘OT NULL銆傚畠浣夸換浣曚簨鎯呮洿蹇屼笖姣忓垪鍙互鑺傜渷涓浣嶃傛敞鎰忓鏋滃湪搴旂敤紼嬪簭涓‘瀹為渶瑕丯ULL錛屽簲璇ユ鏃犵枒闂嬌鐢ㄥ畠錛屽彧鏄伩鍏?榛樿鍦板湪鎵鏈夊垪涓婃湁瀹冦?br>5) 瀵逛簬MyISAM琛紝濡傛灉娌℃湁浠諱綍鍙橀暱鍒?VARCHAR銆乀EXT鎴朆LOB鍒?錛屼嬌鐢ㄥ浐瀹氬昂瀵哥殑璁板綍鏍煎紡銆傝繖姣旇緝蹇絾鏄笉騫稿湴鍙兘浼氭氮璐逛竴浜涚┖闂淬傚嵆浣夸綘宸茬粡鐢–REATE閫夐」璁¬ARCHAR鍒?span class=hilite1>ROW_FORMAT=fixed錛屼篃鍙互鎻愮ず鎯充嬌鐢ㄥ浐瀹氶暱搴︾殑琛屻?br>6) 浣跨敤sample character set錛屼緥濡俵atin1銆傚敖閲忓皯浣跨敤utf-8錛屽洜涓簎tf-8鍗犵敤鐨勭┖闂存槸latin1鐨?鍊嶃傚彲浠ュ湪涓嶉渶瑕佷嬌鐢╱tf-8鐨勫瓧孌典笂闈嬌鐢╨atin1錛屼緥濡俶ail錛寀rl絳夈?br>

2.1.3 绱㈠紩
鎵鏈塎ySQL鍒楃被鍨嬪彲浠ヨ绱㈠紩銆傚鐩稿叧鍒椾嬌鐢ㄧ儲寮曟槸鎻愰珮SELECT鎿嶄綔鎬ц兘鐨勬渶浣抽斿緞銆備嬌鐢ㄧ儲寮曞簲璇ユ敞鎰忎互涓嬪嚑鐐癸細
1) MySQL鍙細浣跨敤鍓嶇紑錛屼緥濡俴ey(a, b) …where b=5 灝嗕嬌鐢ㄤ笉鍒扮儲寮曘?br>2) 瑕侀夋嫨鎬х殑浣跨敤绱㈠紩銆傚湪鍙樺寲寰堝皯鐨勫垪涓婁嬌鐢ㄧ儲寮曞茍涓嶆槸寰堝ソ錛屼緥濡傛у埆鍒椼?br>3) 鍦║nique鍒椾笂瀹氫箟Unique index銆?br>4) 閬垮厤寤虹珛浣跨敤涓嶅埌鐨勭儲寮曘?br>5) 鍦˙tree index涓紙InnoDB浣跨敤Btree錛夛紝鍙互鍦ㄩ渶瑕佹帓搴忕殑鍒椾笂寤虹珛绱㈠紩銆?br>6) 閬垮厤閲嶅鐨勭儲寮曘?br>7) 閬垮厤鍦ㄥ凡鏈夌儲寮曠殑鍓嶇紑涓婂緩绔嬬儲寮曘備緥濡傦細濡傛灉瀛樺湪index錛坅錛宐錛夊垯鍘繪帀index錛坅錛夈?br>8) 鎺у埗鍗曚釜绱㈠紩鐨勯暱搴︺備嬌鐢╧ey錛坣ame錛?錛夛級鍦ㄦ暟鎹殑鍓嶉潰鍑犱釜瀛楃寤虹珛绱㈠紩銆?br>9) 瓚婃槸鐭殑閿艱秺濂斤紝鏈濂戒嬌鐢╥nteger銆?br>10) 鍦ㄦ煡璇腑瑕佷嬌鐢ㄥ埌绱㈠紩錛堜嬌鐢╡xplain鏌ョ湅錛夛紝鍙互鍑忓皯璇葷鐩樼殑嬈℃暟錛屽姞閫熻鍙栨暟鎹?br>11) 鐩歌繎鐨勯敭鍊兼瘮闅忔満濂姐侫uto_increment灝辨瘮uuid濂姐?br>12) Optimize table鍙互鍘嬬緝鍜屾帓搴廼ndex錛屾敞鎰忎笉瑕侀綣佽繍琛屻?br>13) Analyze table鍙互鏇存柊鏁版嵁銆?br>
2.2 Designing queries
鏌ヨ璇彞鐨勪紭鍖栨槸涓涓狢ase by case鐨勯棶棰橈紝涓嶅悓鐨剆ql鏈変笉鍚岀殑浼樺寲鏂規錛屽湪榪欓噷鎴戝彧鍒楀嚭涓浜涢氱敤鐨勬妧宸с?br>
1) 鍦ㄦ湁index鐨勬儏鍐典笅錛屽敖閲忎繚璇佹煡璇嬌鐢ㄤ簡姝g‘鐨刬ndex銆傚彲浠ヤ嬌鐢‥XPLAIN select …鏌ョ湅緇撴灉錛屽垎鏋愭煡璇€?br>2) 鏌ヨ鏃朵嬌鐢ㄥ尮閰嶇殑綾誨瀷銆備緥濡俿elect * from a where id=5錛?濡傛灉榪欓噷id鏄瓧絎︾被鍨嬶紝鍚屾椂鏈塱ndex錛岃繖鏉℃煡璇㈠垯浣跨敤涓嶅埌index錛屼細鍋氬叏琛ㄦ壂鎻忥紝閫熷害浼氬緢鎱€傛紜殑搴旇鏄?… where id=”5” 錛屽姞涓婂紩鍙瘋〃鏄庣被鍨嬫槸瀛楃銆?br>3) 浣跨敤--log-slow-queries –long-query-time=2鏌ョ湅鏌ヨ姣旇緝鎱㈢殑璇彞銆傜劧鍚庝嬌鐢╡xplain鍒嗘瀽鏌ヨ錛屽仛鍑轟紭鍖栥?br>
3. 鏈嶅姟鍣ㄧ浼樺寲
3.1 MySQL瀹夎
MySQL鏈夊緢澶氬彂琛岀増鏈紝鏈濂戒嬌鐢∕ySQL AB鍙戝竷鐨勪簩榪涘埗鐗堟湰銆備篃鍙互涓嬭澆婧愪唬鐮佽繘琛岀紪璇戝畨瑁咃紝浣嗘槸緙栬瘧鍣ㄥ拰綾誨簱鐨勪竴浜沚ug鍙兘浼氫嬌緙栬瘧瀹屾垚鐨凪ySQL瀛樺湪娼滃湪鐨勯棶棰樸?br>濡傛灉瀹夎MySQL鐨勬湇鍔″櫒浣跨敤鐨勬槸Intel鍏徃鐨勫鐞嗗櫒錛屽彲浠ヤ嬌鐢╥ntel c++緙栬瘧鐨勭増鏈紝鍦↙inux World2005鐨勪竴綃嘝PT涓彁鍒幫紝浣跨敤intel C++緙栬瘧鍣ㄧ紪璇戠殑MySQL鏌ヨ閫熷害姣旀甯哥増鏈揩30%宸﹀彸銆侷ntel c++緙栬瘧鐗堟湰鍙互鍦∕ySQL瀹樻柟緗戠珯涓嬭澆銆?br>
3.2 鏈嶅姟鍣ㄨ緗紭鍖?/font>
MySQL榛樿鐨勮緗ц兘寰堝樊錛屾墍浠ヨ鍋氫竴浜涘弬鏁扮殑璋冩暣銆傝繖涓鑺備粙緇嶄竴浜涢氱敤鐨勫弬鏁拌皟鏁達紝涓嶆秹鍙婂叿浣撶殑瀛樺偍寮曟搸錛堜富瑕佹寚MyISAM錛孖nnoDB錛岀浉鍏充紭鍖栧湪4涓粙緇嶏級銆?br>
--character-set錛氬鏋滄槸鍗曚竴璇█浣跨敤綆鍗曠殑character set渚嬪latin1銆傚敖閲忓皯鐢║tf-8錛寀tf-8鍗犵敤絀洪棿杈冨銆?br>--memlock錛氶攣瀹歁ySQL鍙兘榪愯鍦ㄥ唴瀛樹腑錛岄伩鍏峴wapping錛屼絾鏄鏋滃唴瀛樹笉澶熸椂鏈夊彲鑳藉嚭鐜伴敊璇?br>--max_allowed_packet錛氳瓚沖澶э紝浠ラ傚簲姣旇緝澶х殑SQL鏌ヨ錛屽鎬ц兘娌℃湁澶ぇ褰卞搷錛屼富瑕佹槸閬垮厤鍑虹幇packet閿欒銆?br>--max_connections錛歴erver鍏佽鐨勬渶澶ц繛鎺ャ傚お澶х殑璇濅細鍑虹幇out of memory銆?br>--table_cache錛歁ySQL鍦ㄥ悓涓鏃墮棿淇濇寔鎵撳紑鐨則able鐨勬暟閲忋傛墦寮table寮閿姣旇緝澶с備竴鑸緗負512銆?br>--query_cache_size錛?鐢ㄤ簬緙撳瓨鏌ヨ鐨勫唴瀛樺ぇ灝忋?br>--datadir錛歮ysql瀛樻斁鏁版嵁鐨勬牴鐩綍錛屽拰瀹夎鏂囦歡鍒嗗紑鍦ㄤ笉鍚岀殑紓佺洏鍙互鎻愰珮涓鐐規ц兘銆?br>
4. 瀛樺偍寮曟搸浼樺寲
MySQL鏀寔涓嶅悓鐨勫瓨鍌ㄥ紩鎿庯紝涓昏浣跨敤鐨勬湁MyISAM鍜孖nnoDB銆?br>
4.1 MyISAM
MyISAM綆$悊闈炰簨鍔¤〃銆傚畠鎻愪緵楂橀熷瓨鍌ㄥ拰媯绱紝浠ュ強鍏ㄦ枃鎼滅儲鑳藉姏銆侻yISAM鍦ㄦ墍鏈塎ySQL閰嶇疆閲岃鏀寔錛屽畠鏄粯璁ょ殑瀛樺偍寮曟搸錛岄櫎闈為厤緗甅ySQL榛樿浣跨敤鍙﹀涓涓紩鎿庛?br>
4.1.1 MyISAM鐗規?/font>
4.1.1.1 MyISAM Properties
1) 涓嶆敮鎸佷簨鍔★紝瀹曟満浼氱牬鍧忚〃
2) 浣跨敤杈冨皬鐨勫唴瀛樺拰紓佺洏絀洪棿
3) 鍩轟簬琛ㄧ殑閿侊紝騫跺彂鏇存柊鏁版嵁浼氬嚭鐜頒弗閲嶆ц兘闂
4) MySQL鍙紦瀛業ndex錛屾暟鎹敱OS緙撳瓨
4.1.1.2 Typical MyISAM usages
1) 鏃ュ織緋葷粺
2) 鍙鎴栬呯粷澶ч儴鍒嗘槸璇繪搷浣滅殑搴旂敤
3) 鍏ㄨ〃鎵弿
4) 鎵歸噺瀵煎叆鏁版嵁
5) 娌℃湁浜嬪姟鐨勪綆騫跺彂璇?鍐?br>
4.1.2 MyISAM浼樺寲瑕佺偣
1) 澹版槑鍒椾負NOT NULL錛屽彲浠ュ噺灝戠鐩樺瓨鍌ㄣ?br>2) 浣跨敤optimize table鍋氱鐗囨暣鐞嗭紝鍥炴敹絀洪棽絀洪棿銆傛敞鎰忎粎浠呭湪闈炲父澶х殑鏁版嵁鍙樺寲鍚庤繍琛屻?br>3) Deleting/updating/adding澶ч噺鏁版嵁鐨勬椂鍊欑姝嬌鐢╥ndex銆備嬌鐢ˋLTER TABLE t DISABLE KEYS銆?br>4) 璁劇疆myisam_max_[extra]_sort_file_size瓚沖澶э紝鍙互鏄捐憲鎻愰珮repair table鐨勯熷害銆?br>
4.1.3 MyISAM Table Locks
1) 閬垮厤騫跺彂insert錛寀pdate銆?br>2) 鍙互浣跨敤insert delayed錛屼絾鏄湁鍙兘涓㈠け鏁版嵁銆?br>3) 浼樺寲鏌ヨ璇彞銆?br>4) 姘村鉤鍒嗗尯銆?br>5) 鍨傜洿鍒嗗尯銆?br>6) 濡傛灉閮戒笉璧蜂綔鐢紝浣跨敤InnoDB銆?br>
4.1.4 MyISAM Key Cache
1) 璁劇疆key_buffer_size variable銆侻yISAN鏈涓昏鐨刢ache璁劇疆錛岀敤浜庣紦瀛楳yISAM琛ㄦ牸鐨刬ndex鏁版嵁錛岃鍙傛暟鍙MyISAM鏈夊獎鍝嶃傞氬父鍦ㄥ彧浣跨敤MyISAM鐨凷erver涓緗?5-33%鐨勫唴瀛樺ぇ灝忋?br>2) 鍙互浣跨敤鍑犱釜涓嶅悓鐨凨ey Caches錛堝涓浜沨ot data錛夈?br>
a) SET GLOBAL test.key_buffer_size=512*1024;
b) CACHE INDEX t1.i1, t2.i1, t3 IN test;
2) Preload index鍒癈ache涓彲浠ユ彁楂樻煡璇㈤熷害銆傚洜涓簆reloading index鏄『搴忕殑錛屾墍浠ラ潪甯稿揩銆?br>
a) LOAD INDEX INTO CACHE t1, t2 IGNORE LEAVES錛?br>

4.2 InnoDB
InnoDB緇橫ySQL鎻愪緵浜嗗叿鏈夋彁浜わ紝鍥炴粴鍜屽穿婧冩仮澶嶈兘鍔涚殑浜嬪姟瀹夊叏錛圓CID鍏煎錛夊瓨鍌ㄥ紩鎿庛侷nnoDB鎻愪緵row level lock錛屽茍涓斾篃鍦⊿ELECT璇彞鎻愪緵涓涓狾racle椋庢牸涓鑷寸殑闈為攣瀹氳銆傝繖浜涚壒鑹插鍔犱簡澶氱敤鎴烽儴緗插拰鎬ц兘銆傛病鏈夊湪InnoDB涓墿澶ч攣瀹氱殑闇瑕侊紝鍥犱負鍦↖nnoDB涓璻ow level lock閫傚悎闈炲父灝忕殑絀洪棿銆侷nnoDB涔熸敮鎸丗OREIGN KEY綰︽潫銆傚湪SQL鏌ヨ涓紝浣犲彲浠ヨ嚜鐢卞湴灝咺nnoDB綾誨瀷鐨勮〃涓庡叾瀹僊ySQL鐨勮〃鐨勭被鍨嬫販鍚堣搗鏉ワ紝鐢氳嚦鍦ㄥ悓涓涓煡璇腑涔熷彲浠ユ販鍚堛?br>InnoDB鏄負鍦ㄥ鐞嗗法澶ф暟鎹噺鏃惰幏寰楁渶澶фц兘鑰岃璁$殑銆傚畠鐨凜PU浣跨敤鏁堢巼闈炲父楂樸?br>InnoDB瀛樺偍寮曟搸宸茬粡瀹屽叏涓嶮ySQL鏈嶅姟鍣ㄦ暣鍚堬紝InnoDB瀛樺偍寮曟搸涓哄湪鍐呭瓨涓紦瀛樻暟鎹拰绱㈠紩鑰岀淮鎸佸畠鑷繁鐨勭紦鍐叉睜銆?InnoDB瀛樺偍瀹冪殑琛紗绱㈠紩鍦ㄤ竴涓〃絀洪棿涓紝琛ㄧ┖闂村彲浠ュ寘鍚暟涓枃浠訛紙鎴栧師濮嬬鐩樺垎鍖猴級銆傝繖涓嶮yISAM琛ㄤ笉鍚岋紝姣斿鍦∕yISAM琛ㄤ腑姣忎釜琛ㄨ瀛樺湪鍒嗙鐨勬枃浠朵腑銆侷nnoDB 琛ㄥ彲浠ユ槸浠諱綍澶у皬錛屽嵆浣垮湪鏂囦歡灝哄琚檺鍒朵負2GB鐨勬搷浣滅郴緇熶笂銆?br>璁稿闇瑕侀珮鎬ц兘鐨勫ぇ鍨嬫暟鎹簱绔欑偣涓婁嬌鐢ㄤ簡InnoDB寮曟搸銆傝憲鍚嶇殑Internet鏂伴椈绔欑偣Slashdot.org榪愯鍦↖nnoDB涓娿?Mytrix, Inc.鍦↖nnoDB涓婂瓨鍌ㄨ秴榪?TB鐨勬暟鎹紝榪樻湁涓浜涘叾瀹冪珯鐐瑰湪InnoDB涓婂鐞嗗鉤鍧囨瘡縐?00嬈℃彃鍏?鏇存柊鐨勮礋鑽楓?br>4.2.1 InnoDB鐗規?/font>
4.2.1.1 InnoDB Properties
1) 鏀寔浜嬪姟錛孉CID錛屽閿?br>2) Row level locks銆?
3) 鏀寔涓嶅悓鐨勯殧紱葷駭鍒?br>4) 鍜孧yISAM鐩告瘮闇瑕佽緝澶氱殑鍐呭瓨鍜岀鐩樼┖闂淬?br>5) 娌℃湁閿帇緙┿?br>6) 鏁版嵁鍜岀儲寮曢兘緙撳瓨鍦ㄥ唴瀛榟ash琛ㄤ腑銆?br>
4.2.1.2 InnoDB Good For
1) 闇瑕佷簨鍔$殑搴旂敤銆?br>2) 楂樺茍鍙戠殑搴旂敤銆?br>3) 鑷姩鎭㈠銆?br>4) 杈冨揩閫熺殑鍩轟簬涓婚敭鐨勬搷浣溿?br>
4.2.2 InnoDB浼樺寲瑕佺偣
1) 灝介噺浣跨敤short錛宨nteger鐨勪富閿?br>2) Load/Insert鏁版嵁鏃舵寜涓婚敭欏哄簭銆傚鏋滄暟鎹病鏈夋寜涓婚敭鎺掑簭錛屽厛鎺掑簭鐒跺悗鍐嶈繘琛屾暟鎹簱鎿嶄綔銆?br>3) 鍦↙oad鏁版嵁鏄負璁劇疆SET UNIQUE_CHECKS=0錛孲ET FOREIGN_KEY_CHECKS=0錛屽彲浠ラ伩鍏嶅閿拰鍞竴鎬х害鏉熸鏌ョ殑寮閿銆?br>4) 浣跨敤prefix keys銆傚洜涓篒nnoDB娌℃湁key鍘嬬緝鍔熻兘銆?br>
4.2.3 InnoDB鏈嶅姟鍣ㄧ璁懼畾
innodb_buffer_pool_size錛氳繖鏄疘nnoDB鏈閲嶈鐨勮緗紝瀵笽nnoDB鎬ц兘鏈夊喅瀹氭х殑褰卞搷銆傞粯璁ょ殑璁劇疆鍙湁8M錛屾墍浠ラ粯璁ょ殑鏁版嵁搴撹緗笅闈nnoDB鎬ц兘寰堝樊銆傚湪鍙湁InnoDB瀛樺偍寮曟搸鐨勬暟鎹簱鏈嶅姟鍣ㄤ笂闈紝鍙互璁劇疆60-80%鐨勫唴瀛樸傛洿綺劇‘涓鐐癸紝鍦ㄥ唴瀛樺閲忓厑璁哥殑鎯呭喌涓嬮潰璁劇疆姣擨nnoDB tablespaces澶?0%鐨勫唴瀛樺ぇ灝忋?br>
innodb_data_file_path錛氭寚瀹氳〃鏁版嵁鍜岀儲寮曞瓨鍌ㄧ殑絀洪棿錛屽彲浠ユ槸涓涓垨鑰呭涓枃浠躲傛渶鍚庝竴涓暟鎹枃浠跺繀欏繪槸鑷姩鎵╁厖鐨勶紝涔熷彧鏈夋渶鍚庝竴涓枃浠跺厑璁歌嚜鍔ㄦ墿鍏呫傝繖鏍鳳紝褰撶┖闂寸敤瀹屽悗錛岃嚜鍔ㄦ墿鍏呮暟鎹枃浠跺氨浼氳嚜鍔ㄥ闀匡紙浠?MB涓哄崟浣嶏級浠ュ綰抽澶栫殑鏁版嵁銆備緥濡傦細 innodb_data_file_path=/disk1/ibdata1:900M;/disk2/ibdata2:50M:autoextend涓や釜鏁版嵁鏂囦歡鏀懼湪涓嶅悓鐨勭鐩樹笂銆傛暟鎹鍏堟斁鍦╥bdata1涓紝褰撹揪鍒?00M浠ュ悗錛屾暟鎹氨鏀懼湪ibdata2涓備竴鏃﹁揪鍒?0MB錛宨bdata2灝嗕互8MB涓哄崟浣嶈嚜鍔ㄥ闀褲傚鏋滅鐩樻弧浜嗭紝闇瑕佸湪鍙﹀鐨勭鐩樹笂闈㈠鍔犱竴涓暟鎹枃浠躲?br>
innodb_data_home_dir錛氭斁緗〃絀洪棿鏁版嵁鐨勭洰褰曪紝榛樿鍦╩ysql鐨勬暟鎹洰褰曪紝璁劇疆鍒板拰MySQL瀹夎鏂囦歡涓嶅悓鐨勫垎鍖哄彲浠ユ彁楂樻ц兘銆?br>
innodb_log_file_size錛氳鍙傛暟鍐沖畾浜唕ecovery speed銆傚お澶х殑璇漴ecovery灝變細姣旇緝鎱紝澶皬浜嗗獎鍝嶆煡璇㈡ц兘錛屼竴鑸彇256M鍙互鍏奸【鎬ц兘鍜宺ecovery鐨勯熷害
銆?br>innodb_log_buffer_size錛氱鐩橀熷害鏄緢鎱㈢殑錛岀洿鎺ュ皢log鍐欓亾紓佺洏浼氬獎鍝岻nnoDB鐨勬ц兘錛岃鍙傛暟璁懼畾浜唋og buffer鐨勫ぇ灝忥紝涓鑸?M銆傚鏋滄湁澶х殑blob鎿嶄綔錛屽彲浠ラ傚綋澧炲ぇ銆?br>
innodb_flush_logs_at_trx_commit=2錛?璇ュ弬鏁拌瀹氫簡浜嬪姟鎻愪氦鏃跺唴瀛樹腑log淇℃伅鐨勫鐞嗐?br>
1) =1鏃訛紝鍦ㄦ瘡涓簨鍔℃彁浜ゆ椂錛屾棩蹇楃紦鍐茶鍐欏埌鏃ュ織鏂囦歡錛屽鏃ュ織鏂囦歡鍋氬埌紓佺洏鎿嶄綔鐨勫埛鏂般俆ruly ACID銆傞熷害鎱€?br>2) =2鏃訛紝鍦ㄦ瘡涓簨鍔℃彁浜ゆ椂錛屾棩蹇楃紦鍐茶鍐欏埌鏂囦歡錛屼絾涓嶅鏃ュ織鏂囦歡鍋氬埌紓佺洏鎿嶄綔鐨勫埛鏂般傚彧鏈夋搷浣滅郴緇熷穿婧冩垨鎺夌數鎵嶄細鍒犻櫎鏈鍚庝竴縐掔殑浜嬪姟錛屼笉鐒朵笉浼氫涪澶變簨鍔°?br>3) =0鏃訛紝 鏃ュ織緙撳啿姣忕涓嬈″湴琚啓鍒版棩蹇楁枃浠訛紝騫朵笖瀵規棩蹇楁枃浠跺仛鍒扮鐩樻搷浣滅殑鍒鋒柊銆備換浣昺ysqld榪涚▼鐨勫穿婧冧細鍒犻櫎宕╂簝鍓嶆渶鍚庝竴縐掔殑浜嬪姟
innodb_file_per_table錛氬彲浠ュ瓨鍌ㄦ瘡涓狪nnoDB琛ㄥ拰瀹冪殑绱㈠紩鍦ㄥ畠鑷繁鐨勬枃浠朵腑銆?br>
transaction-isolation=READ-COMITTED: 濡傛灉搴旂敤紼嬪簭鍙互榪愯鍦≧EAD-COMMITED闅旂綰у埆錛屽仛姝よ瀹氫細鏈変竴瀹氱殑鎬ц兘鎻愬崌銆?br>
innodb_flush_method錛?璁劇疆InnoDB鍚屾IO鐨勬柟寮忥細
1) Default – 浣跨敤fsync錛堬級銆?br>2) O_SYNC 浠ync妯″紡鎵撳紑鏂囦歡錛岄氬父姣旇緝鎱€?br>3) O_DIRECT錛屽湪Linux涓婁嬌鐢―irect IO銆傚彲浠ユ樉钁楁彁楂橀熷害錛岀壒鍒槸鍦≧AID緋葷粺涓娿傞伩鍏嶉澶栫殑鏁版嵁澶嶅埗鍜宒ouble buffering錛坢ysql buffering 鍜孫S buffering錛夈?br>
innodb_thread_concurrency錛?InnoDB kernel鏈澶х殑綰跨▼鏁般?br>
1) 鏈灝戣緗負(num_disks+num_cpus)*2銆?br>2) 鍙互閫氳繃璁劇疆鎴?000鏉ョ姝㈣繖涓檺鍒?br>
5. 緙撳瓨
緙撳瓨鏈夊緢澶氱錛屼負搴旂敤紼嬪簭鍔犱笂閫傚綋鐨勭紦瀛樼瓥鐣ヤ細鏄捐憲鎻愰珮搴旂敤紼嬪簭鐨勬ц兘銆傜敱浜庡簲鐢ㄧ紦瀛樻槸涓涓瘮杈冨ぇ鐨勮瘽棰橈紝鎵浠ヨ繖涓閮ㄥ垎榪橀渶瑕佽繘涓姝ヨ皟鐮斻?

6. Reference
1) http://www.mysqlperformanceblog.com/
2) Advanced MySQL Performance Optimization, Peter Zaitsev, Tobias Asplund, MySQL Users Conference 2005
3) Improving MySQL Server Performance with Intel C++ Compiler錛孭eter Zaitsev錛孡inux World 2005
4) MySQL Performance Optimization, Peter Zaitsev, Percona Ltd, OPEN SOURCE DATABASE CONFERENCE 2006
5) MySQL Server Settings Tuning, Peter Zaitsev, co-founder, Percona Ltd, 2007
6) MySQL Reference Manual

]]>
涓浜汭nformix SQL鍑芥暟鐨勭敤娉?/title><link>http://www.shnenglu.com/wmuu/archive/2006/10/30/14381.html</link><dc:creator>鍚瑧鍗婃鐧?/dc:creator><author>鍚瑧鍗婃鐧?/author><pubDate>Mon, 30 Oct 2006 06:44:00 GMT</pubDate><guid>http://www.shnenglu.com/wmuu/archive/2006/10/30/14381.html</guid><wfw:comment>http://www.shnenglu.com/wmuu/comments/14381.html</wfw:comment><comments>http://www.shnenglu.com/wmuu/archive/2006/10/30/14381.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/wmuu/comments/commentRss/14381.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/wmuu/services/trackbacks/14381.html</trackback:ping><description><![CDATA[ <p> <br />涓銆佸唴閮ㄥ嚱鏁?<br />銆 1銆佸唴閮ㄥ悎璁″嚱鏁?<br />銆銆銆 1錛塁OUNT錛?錛夈銆銆銆銆銆銆銆銆銆榪斿洖琛屾暟 <br />銆銆銆 2錛塁OUNT錛圖ISTINCT COLNAME錛夈銆 榪斿洖鎸囧畾鍒椾腑鍞竴鍊肩殑涓暟 <br />銆銆銆 3錛塖UM錛圕OLNAME/EXPRESSION錛夈銆 榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑鏁板煎拰錛?<br />銆銆銆 4錛塖UM錛圖ISTINCT COLNAME錛夈銆銆 榪斿洖鎸囧畾鍒椾腑鍞竴鍊肩殑鍜?<br />銆銆銆 5錛堿VG錛圕OLNAME/EXPRESSION錛夈銆 榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忎腑鐨勬暟鍊煎鉤鍧囧?<br />銆銆銆 6錛堿VG錛圖ISTINCT COLNAME錛夈銆銆 榪斿洖鎸囧畾鍒椾腑鍞竴鍊肩殑騫沖潎鍊?<br />銆銆銆 7錛塎IN錛圕OLNAME/EXPRESSION錛夈銆 榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忎腑鐨勬暟鍊兼渶灝忓?<br />銆銆銆 8錛塎AX錛圕OLNAME/EXPRESSION錛夈銆 榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忎腑鐨勬暟鍊兼渶澶у?<br />銆 2銆佹棩鏈熶笌鏃墮棿鍑芥暟 <br />銆銆銆 1錛塂AY錛圖ATE/DATETIME EXPRESSION錛夈銆銆榪斿洖鎸囧畾琛ㄨ揪寮忎腑鐨勫綋鏈堝嚑鍙?<br />銆銆銆 2錛塎ONTH錛圖ATE/DATETIME EXPRESSION錛夈銆榪斿洖鎸囧畾琛ㄨ揪寮忎腑鐨勬湀浠?<br />銆銆銆 3錛塝EAR錛圖ATE/DATETIME EXPRESSION錛夈銆 榪斿洖鎸囧畾琛ㄨ揪寮忎腑鐨勫勾浠?<br />銆銆銆 4錛塛EEKDAY錛圖ATE/DATETIME EXPRESSION錛夈榪斿洖鎸囧畾琛ㄨ揪寮忎腑鐨勫綋鍛ㄦ槦鏈熷嚑 <br />銆銆銆 5錛塂ATE錛圢OT DATE EXPRESSION錛夈銆銆銆銆榪斿洖鎸囧畾琛ㄨ揪寮忎唬琛ㄧ殑鏃ユ湡鍊?<br />銆銆銆 6錛塗ODAY銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆榪斿洖褰撳墠鏃ユ湡鐨勬棩鏈熷?<br />銆銆銆 7錛塁URRENT[first to last]銆銆銆銆銆銆銆 榪斿洖褰撳墠鏃ユ湡鐨勬棩鏈熸椂闂村?<br />銆銆銆 8錛塁OLNAME/EXPRESSION UNITS PRECISION銆 榪斿洖鎸囧畾綺懼害鐨勬寚瀹氬崟浣嶆暟 <br />銆銆銆 9錛塎DY錛圡ONTH錛孌AY錛孻EAR錛夈銆銆銆銆銆銆榪斿洖鏍囪瘑鎸囧畾騫淬佹湀銆佹棩鐨勬棩鏈熷?<br />銆銆銆 10錛塂ATETIME錛圖ATE/DATETIME EXPRESSION錛塅IRST TO LAST 榪斿洖琛ㄨ揪寮忎唬琛ㄧ殑鏃ユ湡鏃墮棿鍊?<br />銆銆銆 11錛塈NTERVAL錛圖ATE/DATETIME EXPRESSION錛塅IRST TO LAST 榪斿洖琛ㄨ揪寮忎唬琛ㄧ殑鏃墮棿闂撮殧鍊?<br />銆銆銆 12錛塃XTEND錛圖ATE/DATETIME EXPRESSION錛孾first to last]錛夎繑鍥炵粡榪囪皟鏁寸殑鏃ユ湡鎴栨棩鏈熸椂闂?/p> <p>鍊?</p> <p>銆銆銆 渚嬪瓙1銆佸拰UNITS鍚堢敤錛屾寚瀹氭棩鏈熸垨鏃墮棿鍗曚綅(year,month,day,hour,minute,seond,fraction)錛?<br />銆銆銆銆銆銆銆let tmp_date = today + 3 UNITS day <br />銆銆銆 渚嬪瓙2銆乴et tmp_date = MDY(10,30,2002)銆銆-- 2002-10-30 <br />銆銆銆 渚嬪瓙3銆乴et tmp_date = today + interval(7) day to day銆--褰撳墠鏃墮棿鍔犱笂7澶╋紱 <br />銆銆銆銆銆銆銆娉細璇ュ姛鑳戒笌1鐩鎬技錛?<br />銆銆銆 渚嬪瓙4銆丒XTEND杞崲鏃ユ湡鎴栨棩鏈熸椂闂村?<br />銆銆銆銆銆銆銆let tmp_inthour = extend(datetime1,hour to hour) </p> <p>銆 3銆佷唬鏁板嚱鏁?<br />銆銆銆1錛堿BS(COLNAME/EXPRESSION)錛氥銆銆銆銆銆 鍙栫粷瀵瑰?<br />銆銆銆2錛塎OD錛圕OLNAME/EXPRESSION錛孌IVISOR錛夈銆榪斿洖闄や互闄ゆ暟鍚庣殑妯★紙浣欐暟錛?<br />銆銆銆3錛塒OW錛圕OLNAME/EXPRESSION錛孍XPONENT錛夈 榪斿洖涓涓肩殑鎸囨暟鍐?<br />銆銆銆銆 渚嬪瓙錛歭et tmp_float = pow(2,3)銆--8.00000000 </p> <p>銆銆銆4錛塕OOT錛圕OLNAME/EXPRESSION錛孾index]錛夈 榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑鏍瑰?</p> <p>銆銆銆5錛塖QRT錛圕OLNAME/EXPRESSION錛夈銆銆銆銆銆榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑騫蟲柟鏍瑰?</p> <p>銆銆銆6錛塕OUND錛圕OLNAME/EXPRESSION錛孾factor]錛?榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑鍦嗘暣鍖栧?<br />銆銆銆7錛塗RUNC錛圕OLNAME/EXPRESSION錛孾factor]錛?榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑鎴熬鍊?<br />銆銆銆銆 璇存槑錛氫笂涓よ呬腑FACTOR鎸囧畾灝忔暟浣嶆暟錛岃嫢涓嶆寚瀹氾紝鍒欎負0錛涜嫢涓鴻礋鏁幫紝鍒欐暣鍖栧埌灝忔暟鐐瑰乏杈癸紱 <br />銆銆銆銆 娉細ROUND鏄湪鎸囧畾浣嶄笂榪涜4鑸?鍏ワ紱TRUNC鏄湪鎸囧畾浣嶄笂鐩存帴鎴柇錛?<br />銆銆銆銆銆let tmp_float = round(4.555,2) --4.56 <br />銆銆銆銆銆let tmp_float = trunc(4.555,2) --4.55 </p> <p>銆 4銆佹寚鏁頒笌瀵規暟鍑芥暟 <br />銆銆銆1錛塃XP錛圕OLNAME/EXPRESSION錛夈銆銆銆榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑鎸囨暟鍊?<br />銆銆銆2錛塋OGN錛圕OLNAME/EXPRESSION錛夈銆銆 榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑鑷劧瀵規暟鍊?<br />銆銆銆3錛塋OG10錛圕OLNAME/EXPRESSION錛夈銆銆榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑搴曟暟浣?0鐨勫鏁板?</p> <p>銆 5銆佷笁瑙掑嚱鏁?<br />銆銆銆1錛塁OS錛圧ADIAN EXPRESSION錛夈銆銆銆銆榪斿洖鎸囧畾寮у害琛ㄨ揪寮忕殑浣欏雞鍊?<br />銆銆銆2錛塖IN錛圧ADIAN EXPRESSION錛夈銆銆銆銆姝e雞 <br />銆銆銆3錛塗AN錛圧ADIAN EXPRESSION錛夈銆銆銆銆姝e垏 <br />銆銆銆4錛堿COS錛圧ADIAN EXPRESSION錛夈銆銆銆 鍙嶄綑寮?<br />銆銆銆5錛堿SIN錛圧ADIAN EXPRESSION錛夈銆銆銆 鍙嶆寮?<br />銆銆銆6錛堿TAN錛圧ADIAN EXPRESSION錛夈銆銆銆 鍙嶆鍒?<br />銆銆銆7錛堿TAN2錛圶錛孻錛夈銆銆銆銆銆銆銆銆銆 榪斿洖鍧愭爣錛圶錛孻錛夌殑鏋佸潗鏍囪搴︾粍浠?</p> <p>銆 6銆佺粺璁″嚱鏁?<br />銆銆銆1錛塕ANGE錛圕OLNAME錛夈銆銆 榪斿洖鎸囧畾鍒楃殑鏈澶у間笌鏈灝忓間箣宸?= MAX錛圕OLNAME錛?MIN</p> <p>錛圕OLNAME錛?<br />銆銆銆2錛塚ARIANCE錛圕OLNAME錛夈銆榪斿洖鎸囧畾鍒楃殑鏍鋒湰鏂瑰樊錛?<br />銆銆銆3錛塖TDEV錛圕OLNAME錛夈銆銆 榪斿洖鎸囧畾鍒楃殑鏍囧噯鍋忓樊錛?</p> <p>銆 7銆佸叾浠栧嚱鏁?<br />銆銆銆1錛塙SER銆銆銆銆銆銆銆銆銆銆銆銆銆銆榪斿洖褰撳墠鐢ㄦ埛鍚?<br />銆銆銆2錛塇EX錛圕OLNAME/EXPRESSION錛夈銆銆 榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑鍗佸叚榪涘埗鍊?<br />銆銆銆3錛塋ENGTH錛圕OLNAME/EXPRESSION錛夈銆榪斿洖鎸囧畾瀛楃鍒楁垨琛ㄨ揪寮忕殑闀垮害 <br />銆銆銆4錛塗RIM錛圕OLNAME/EXPRESSION錛夈銆銆鍒犻櫎鎸囧畾鍒楁垨琛ㄨ揪寮忓墠鍚庣殑瀛楃 <br />銆銆銆5錛塁OLNAME/EXPRESSION || COLNAME/EXPRESSION銆榪斿洖騫跺湪涓璧風殑瀛楃錛?</p> <p>浜屻両DS鍐呴儴鍑芥暟 <br />銆 1銆丏BSERVERNAME銆銆銆榪斿洖鏁版嵁搴撴湇鍔″櫒鍚嶃let tmp_char=DBSERVERNAME <br />銆 2銆丼ITENAME銆銆銆銆銆榪斿洖鏁版嵁搴撴湇鍔″櫒鍚嶃let tmp_char=SITENAME <br />銆銆銆璇存槑錛氫袱鑰呭姛鑳界浉鍚岋紱 </p> <p>銆 3銆丏BINFO錛堚楽PECIAL_KEYWORD')銆銆銆榪斿洖鍙叧閿瓧鍊?<br />銆銆銆渚嬪瓙1錛氳繑鍥炴暟鎹腑姣忎釜琛ㄧ殑DBSPACE鍚嶇О <br />銆銆銆銆 select dbinfo('dbspace',partnum),tabname from systables <br />銆銆銆銆銆where tabid>99 and tabtype='T'銆(OK) <br />銆銆銆渚嬪瓙2錛氳繑鍥炰換浣曡〃涓彃鍏ョ殑鏈鍚庝竴涓猄ERIAL鍊?<br />銆銆銆銆銆select dbinfo('sqlca.sqlerrd1') from systables where tabid = 1 <br />銆銆銆渚嬪瓙3錛氳繑鍥炴渶鍚庝竴涓猄ELECT錛孖NSERT錛孶PDATE錛孌ELETE鎴朎XECUTE PROCEDURE璇彞澶勭悊鐨勮鏁幫紱 <br />銆銆銆銆銆select dbinfo('sqlca.sqlerrd2') from systables where tabid=1; </p> <p> <br /> <br />聽</p> <h3>Date Manipulation</h3> <p>One of the more difficult concepts in Informix's handling of date and time values concerns the use of the variables in arithmetic or relational expressions. You can add or subtract DATE and DATETIME variables from each other. You can add or subtract an INTERVAL to a DATE or DATETIME. Table 1 shows the results of different types of operations on DATE and DATETIME values. </p> <p> <b>Table 1. Operations on DATE and DATETIME Variables</b> </p> <table cellspacing="1" cellpadding="5" border="1"> <tbody> <tr> <td> <font size="2"> <p> <b>First Operand</b> </p> </font> </td> <td> <font size="2"> <b>Operation</b> </font> </td> <td> <font size="2"> <p> <b>Second Operand</b> </p> </font> </td> <td> <font size="2"> <p> <b>Result</b> </p> </font> </td> </tr> <tr> <td> <font size="2"> <p>DATE</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">-</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">-</p> </font> </td> <td> <font size="2"> <p>DATE</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>DATE</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+-</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">-</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+-</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+-</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">-</p> </font> </td> <td> <font size="2"> <p>CURRENT</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>CURRENT</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">-</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+</p> </font> </td> <td> <font size="2"> <p>CURRENT</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>CURRENT</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+-</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>DATETIME</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+-</p> </font> </td> <td> <font size="2"> <p>UNITS</p> </font> </td> <td> <font size="2"> <p>DATETIME</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">+-</p> </font> </td> <td> <font size="2"> <p>UNITS</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> <tr> <td> <font size="2"> <p>INTERVAL</p> </font> </td> <td> <font size="2"> <p style="TEXT-ALIGN: center" align="center">*/</p> </font> </td> <td> <font size="2"> <p>NUMBER</p> </font> </td> <td> <font size="2"> <p>INTERVAL</p> </font> </td> </tr> </tbody> </table> <p>Notice that it's always okay to subtract one DATE or DATETIME value from another, as shown here: <font size="3"><pre>CURRENT - "07/01/1950" = INTERVAL (my age) "12/25/2000" 鈥?CURRENT = INTERVAL (how long till Xmas?)</pre><p>In such a case, the result is always an INTERVAL variable. It would make no sense to add two DATE or DATETIME values together. What could such an addition represent? </p><h3>UNITS Keyword</h3><p>When working with INTERVAL values, sometimes it is necessary to specify the precision with which you are dealing. For example, suppose you have the following field defined: <font size="3"></font></p><pre>lead_time INTERVAL DAY to DAY</pre><p>To add 10 days to the lead time you could use a SQL statement like this: <font size="3"></font></p><pre>SELECT lead_time + INTERVAL(10) DAY to DAY FROM orders</pre><p>You could achieve the same results using the UNITS keyword: <font size="3"></font></p><pre>SELECT lead_time + 10 UNITS DAY FROM orders </pre><p>Like most other programming languages, SQL often allows you to achieve the same ends with different statements. Sometimes the choice is one of personal style. Other times, one format fits in better with a structured style of code writing than another format does. </p><h3>Functions</h3><p>There are several built-in functions that affect date and time calculations. They can apply to either DATE or DATETIME values, with some exceptions. </p><h4>TODAY</h4><p>The TODAY function returns a DATE data value representing the current date. For example, you could execute a SQL function like this: <font size="3"></font></p><pre>UPDATE member SET change_date = TODAY WHER member_number = 12345</pre><h4>CURRENT</h4><p>The CURRENT function is similar to the TODAY function, except it returns a DATETIME value. Without specific qualifiers, the default is YEAR to FRACTION(3). You can change the precision by using the same YEAR to FRACTION qualifiers as you use for DATETIMES. Thus, this would be legal: <font size="3"></font></p><pre>SELECT * from member WHERE elapsed_time < CURRENT YEAR to DAY</pre><h4>DATE</h4><p>The DATE function takes as input a non-DATE value such as CHAR, DATETIME, or INTEGER and returns the corresponding DATE value. For example, the following SQL translates a CHARACTER value to a DATE: <font size="3"></font></p><pre>SELECT * from member WHERE enrollment_date > DATE('01/01/99')</pre><h4>DAY</h4><p>This function returns an integer representing the day of the month. Here's an example: <font size="3"></font></p><pre>SELECT * from member WHERE DAY(enrollment_date) > DAY(CURRENT)</pre><h4>MONTH</h4><p>This performs like the DAY function except it returns an integer between 1 and 12 representing the month: <font size="3"></font></p><pre>SELECT * from member WHERE enrollment_date > MONTH('01/01/99')</pre><h4>WEEKDAY</h4><p>This returns an integer representing the day of the week, with 0 being Sunday and 6 being Saturday: <font size="3"></font></p><pre>SELECT * from member WHERE WEEKDAY(enrollment_date) > WEEKDAY(CURRENT)</pre><h4>YEAR</h4><p>This function is like the ones above, only it returns a four-digit integer representing the year. </p><h4>EXTEND</h4><p>This function allows you to use different precisions in a DATETIME than you have specified in the declaration of the variable. It uses the same FIRST to LAST syntax as the DATETIME variables. This function is used to adjust the precision of a DATETIME variable to match the precision of an INTERVAL that you are using in a calculation. If the INTERVAL value has fields that are not part of the DATETIME value that you are using in a calculation, use the EXTEND function to adjust the precision of the DATETIME. EXTEND can either increase or decrease the precision of a DATETIME, depending upon the FIRST and LAST values. </p><p>Suppose myvariable is declared as DATETIME YEAR to DAY. If you want to add or subtract an INTERVAL defined as MINUTE, you first have to extend the DATETIME as follows: <font size="3"><pre>SELECT EXTEND(myvariable, YEAR to MINUTE) 鈥? INTERVAL(5) MINUTE to MINUTE FROM member</pre><p>The resulting value will be DATETIME YEAR to MINUTE. </p><h4>MDY</h4><p>The MDY function converts three-integer values into a DATE format. The first integer is the month and must evaluate to an integer in the range 1鈥?2. The second integer is the day and must evaluate to a number in the range from 1 to however many days are in the particular month (28鈥?1). The third expression is the year and must be a four-digit integer. Thus, the following MDY functions would each be valid: <font size="3"></font></p><pre>MDY(7,1,1950)</pre><p>returns a DATE of "07/01/50" <font size="3"></font></p><pre>MDY(MONTH(TODAY), 1, YEAR(TODAY))</pre><p>returns a DATE equal to the first day of the current month in the current year </p><p>Informix has extensive capabilities for manipulating dates and times, which can make for long and complex SQL statements. Using the three time-related data types and the time-related functions and keywords, you can accomplish almost any type of manipulation of time data. Unfortunately, getting there may be cryptic and painful. If you regularly do extensive date and time manipulation, you should understand all of the intricacies of these data structures. </p><p>Have fun!聽<br /></p></font></p></font><br />聽</p> <img src ="http://www.shnenglu.com/wmuu/aggbug/14381.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/wmuu/" target="_blank">鍚瑧鍗婃鐧?/a> 2006-10-30 14:44 <a href="http://www.shnenglu.com/wmuu/archive/2006/10/30/14381.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>informix鏁版嵁澶嶅埗鐨勮祫鏂?/title><link>http://www.shnenglu.com/wmuu/archive/2006/05/17/7290.html</link><dc:creator>鍚瑧鍗婃鐧?/dc:creator><author>鍚瑧鍗婃鐧?/author><pubDate>Tue, 16 May 2006 17:13:00 GMT</pubDate><guid>http://www.shnenglu.com/wmuu/archive/2006/05/17/7290.html</guid><wfw:comment>http://www.shnenglu.com/wmuu/comments/7290.html</wfw:comment><comments>http://www.shnenglu.com/wmuu/archive/2006/05/17/7290.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/wmuu/comments/commentRss/7290.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/wmuu/services/trackbacks/7290.html</trackback:ping><description><![CDATA[ibm緗戦〉涓婄殑淇℃伅鍙互鐢ㄤ竴涓瓧鏉ュ艦瀹癸紝涔憋紒灝卞儚鏉傝揣鍫嗐傚湪ibm涓婃壘涓滆タ錛岀粡甯告槸絎竴嬈℃壘鍒幫紝絎簩嬈″氨鎵句笉鍒頒簡錛堣糠璺簡錛夈?br /><a >http://www.dvbbs.net/tech/data/2006042553131.asp</a>聽榪滅▼鏁版嵁澶嶅埗<br /><a >http://fanqiang.chinaunix.net/db/informix/2001-06-12/1402.shtml</a>聽Informix鍔ㄦ佹湇鍔″櫒閰嶇疆--6.鐩稿叧鍩烘湰姒傚康<br /><a >http://fanqiang.chinaunix.net/db/informix/2005-09-07/3624.shtml</a>聽INFORMIX錛峅NLINE鏁版嵁搴撲笁縐嶅浠芥柟娉曠殑閫夋嫨<br /><a >http://fanqiang.chinaunix.net/db/informix/2005-11-14/3842.shtml</a>聽Infomix鏁版嵁搴撶殑澶囦喚涓庢仮澶?br /><a >http://www.linuxmine.com/3348.html</a>聽聽聽聽聽聽INFORMIX 鐨勬暟鎹鍒舵妧鏈?br /><br /><a >http://www.pcvz.com/Program/Database/Oracle/</a>聽鏈夊叧Oracle鐨?br /><br /><img src ="http://www.shnenglu.com/wmuu/aggbug/7290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/wmuu/" target="_blank">鍚瑧鍗婃鐧?/a> 2006-05-17 01:13 <a href="http://www.shnenglu.com/wmuu/archive/2006/05/17/7290.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.fc117.cn" target="_blank">亚洲精品综合久久</a>| <a href="http://www.monggo.cn" target="_blank">久久综合鬼色88久久精品综合自在自线噜噜</a>| <a href="http://www.w4749.cn" target="_blank">久久亚洲国产最新网站</a>| <a href="http://www.sunriseydy.cn" target="_blank">久久青青草视频</a>| <a href="http://www.hhyskj.com.cn" target="_blank">久久99精品国产麻豆</a>| <a href="http://www.davidgroup.com.cn" target="_blank">蜜桃麻豆www久久</a>| <a href="http://www.jiangyuyun.cn" target="_blank">久久人人爽人人爽人人爽</a>| <a href="http://www.tomp3.cn" target="_blank">久久精品aⅴ无码中文字字幕重口</a>| <a href="http://www.500866.cn" target="_blank">亚洲国产精品一区二区久久</a>| <a href="http://www.iioki.cn" target="_blank">久久精品成人一区二区三区</a>| <a href="http://www.3ponline.com.cn" target="_blank">97精品伊人久久大香线蕉</a>| <a href="http://www.wubaili.com.cn" target="_blank">久久久久无码精品国产</a>| <a href="http://www.loverhouse.cn" target="_blank">久久一区二区三区免费</a>| <a href="http://www.daheping.cn" target="_blank">欧美熟妇另类久久久久久不卡</a>| <a href="http://www.vnxz.cn" target="_blank">大香网伊人久久综合网2020</a>| <a href="http://www.itwinds.cn" target="_blank">中文精品久久久久人妻不卡</a>| <a href="http://www.puruimu.cn" target="_blank">久久精品国产99久久久香蕉</a>| <a href="http://www.mivrcloud.cn" target="_blank">亚洲AV日韩精品久久久久</a>| <a href="http://www.dykh-tech.cn" target="_blank">国产无套内射久久久国产</a>| <a href="http://www.haibin860313.com.cn" target="_blank">亚洲狠狠婷婷综合久久久久</a>| <a href="http://www.shidaqizhong.cn" target="_blank">久久精品成人一区二区三区</a>| <a href="http://www.51yueda.cn" target="_blank">久久er国产精品免费观看2</a>| <a href="http://www.qxmobile.cn" target="_blank">久久精品人人做人人爽电影</a>| <a href="http://www.projector8.cn" target="_blank">97久久精品人人做人人爽</a>| <a href="http://www.u2860.cn" target="_blank">国产亚洲精品美女久久久</a>| <a href="http://www.e7sport.cn" target="_blank">国产精品久久久久a影院</a>| <a href="http://www.hbguangtao.cn" target="_blank">久久精品女人天堂AV麻</a>| <a href="http://www.seatravel.com.cn" target="_blank">99久久久精品免费观看国产</a>| <a href="http://www.s360.com.cn" target="_blank">久久AV高潮AV无码AV</a>| <a href="http://www.glhv.cn" target="_blank">久久国产亚洲精品</a>| <a href="http://www.zgpojie.cn" target="_blank">观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 </a>| <a href="http://www.weizhongjiang.cn" target="_blank">久久不见久久见免费视频7</a>| <a href="http://www.fttyz.com.cn" target="_blank">久久久久亚洲AV无码专区桃色</a>| <a href="http://www.thebeaver.cn" target="_blank">99久久精品国产免看国产一区</a>| <a href="http://www.9dn.com.cn" target="_blank">99久久这里只精品国产免费</a>| <a href="http://www.1314liao.cn" target="_blank">欧美麻豆久久久久久中文</a>| <a href="http://www.leathvx.cn" target="_blank">久久久久久久久久久免费精品</a>| <a href="http://www.ndtym.cn" target="_blank">久久精品国产一区二区三区日韩</a>| <a href="http://www.gofiv.cn" target="_blank">国产成人久久AV免费</a>| <a href="http://www.cdake.cn" target="_blank">国产精品久久自在自线观看</a>| <a href="http://www.xfb55.cn" target="_blank">精品久久一区二区</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>