锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鍊? 銆銆銆 渚嬪瓙1銆佸拰UNITS鍚堢敤錛屾寚瀹氭棩鏈熸垨鏃墮棿鍗曚綅(year,month,day,hour,minute,seond,fraction)錛? 銆 3銆佷唬鏁板嚱鏁? 銆銆銆4錛塕OOT錛圕OLNAME/EXPRESSION錛孾index]錛夈 榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑鏍瑰? 銆銆銆5錛塖QRT錛圕OLNAME/EXPRESSION錛夈銆銆銆銆銆榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑騫蟲柟鏍瑰? 銆銆銆6錛塕OUND錛圕OLNAME/EXPRESSION錛孾factor]錛?榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑鍦嗘暣鍖栧? 銆 4銆佹寚鏁頒笌瀵規暟鍑芥暟 銆 5銆佷笁瑙掑嚱鏁? 銆 6銆佺粺璁″嚱鏁? 錛圕OLNAME錛? 銆 7銆佸叾浠栧嚱鏁? 浜屻両DS鍐呴儴鍑芥暟 銆 3銆丏BINFO錛堚楽PECIAL_KEYWORD')銆銆銆榪斿洖鍙叧閿瓧鍊?
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.
Table 1. Operations on DATE and DATETIME Variables
First Operand
Second Operand
Result
DATE - DATETIME INTERVAL DATETIME - DATE INTERVAL DATE +- INTERVAL DATETIME DATETIME - DATETIME INTERVAL DATETIME +- INTERVAL DATETIME INTERVAL + DATETIME DATETIME INTERVAL +- INTERVAL INTERVAL DATETIME - CURRENT INTERVAL CURRENT - DATETIME INTERVAL INTERVAL + CURRENT DATETIME CURRENT +- INTERVAL DATETIME DATETIME +- UNITS DATETIME INTERVAL +- UNITS INTERVAL INTERVAL */ NUMBER INTERVAL Notice that it's always okay to subtract one DATE or DATETIME value from another, as shown here: 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? 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: To add 10 days to the lead time you could use a SQL statement like this: You could achieve the same results using the UNITS keyword: 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. There are several built-in functions that affect date and time calculations. They can apply to either DATE or DATETIME values, with some exceptions. The TODAY function returns a DATE data value representing the current date. For example, you could execute a SQL function like this: 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: 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: This function returns an integer representing the day of the month. Here's an example: This performs like the DAY function except it returns an integer between 1 and 12 representing the month: This returns an integer representing the day of the week, with 0 being Sunday and 6 being Saturday: This function is like the ones above, only it returns a four-digit integer representing the year. 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. 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: The resulting value will be DATETIME YEAR to MINUTE. 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: returns a DATE of "07/01/50" returns a DATE equal to the first day of the current month in the current year 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.
Have fun!聽
use mysql
GRANT ALL PRIVILEGES ON *.* TO root@finapp IDENTIFIED BY "123"
grant all privieges on database.table to user@IpOrName identified by "password"
]]>
杞澆璇風暀鍚?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.1.2 鏁版嵁綾誨瀷
2) 浣跨敤鐗╁寲瑙嗗浘銆侻ySQL涓嶇洿鎺ユ敮鎸佽鏁版嵁搴撶壒鎬э紝浣嗘槸鍙互鐢∕yISAM琛ㄤ唬鏇褲?br>3) 鍐椾綑涓浜涙暟鎹湪琛ㄦ牸涓紝渚嬪灝唕ef_id鍜宯ame瀛樺湪鍚屼竴寮犺〃涓備絾鏄娉ㄦ剰鏇存柊闂銆?br>4) 瀵逛簬涓浜涚畝鍗曠殑瀵硅薄錛岀洿鎺ヤ嬌鐢╲alue浣滀負寤恒備緥濡侷P address絳?br>5) Reference by PRIMARY/UNIQUE KEY銆侻ySQL鍙互浼樺寲榪欑鎿嶄綔錛屼緥濡傦細
鏈鍩烘湰鐨勪紭鍖栦箣涓灝辨槸浣胯〃鍦ㄧ鐩樹笂鍗犳嵁鐨勭┖闂村敖鍙兘灝忋傝繖鑳藉甫鏉ユц兘闈炲父澶х殑鎻愬崌錛屽洜涓烘暟鎹皬錛岀鐩樿鍏ヨ緝蹇紝騫朵笖鍦ㄦ煡璇㈣繃紼嬩腑琛ㄥ唴瀹硅澶勭悊鎵鍗犵敤鐨勫唴瀛樻洿灝戙傚悓鏃訛紝鍦ㄦ洿灝忕殑鍒椾笂寤虹儲寮曪紝绱㈠紩涔熶細鍗犵敤鏇村皯鐨勮祫婧愩?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) 涓嶆敮鎸佷簨鍔★紝瀹曟満浼氱牬鍧忚〃
4.1.1.2 Typical MyISAM usages
2) 浣跨敤杈冨皬鐨勫唴瀛樺拰紓佺洏絀洪棿
3) 鍩轟簬琛ㄧ殑閿侊紝騫跺彂鏇存柊鏁版嵁浼氬嚭鐜頒弗閲嶆ц兘闂
4) MySQL鍙紦瀛業ndex錛屾暟鎹敱OS緙撳瓨
1) 鏃ュ織緋葷粺
4.1.2 MyISAM浼樺寲瑕佺偣
2) 鍙鎴栬呯粷澶ч儴鍒嗘槸璇繪搷浣滅殑搴旂敤
3) 鍏ㄨ〃鎵弿
4) 鎵歸噺瀵煎叆鏁版嵁
5) 娌℃湁浜嬪姟鐨勪綆騫跺彂璇?鍐?br>
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;
2) Preload index鍒癈ache涓彲浠ユ彁楂樻煡璇㈤熷害銆傚洜涓簆reloading index鏄『搴忕殑錛屾墍浠ラ潪甯稿揩銆?br>
b) CACHE INDEX t1.i1, t2.i1, t3 IN test;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銆?
4.2.1.2 InnoDB Good For
3) 鏀寔涓嶅悓鐨勯殧紱葷駭鍒?br>4) 鍜孧yISAM鐩告瘮闇瑕佽緝澶氱殑鍐呭瓨鍜岀鐩樼┖闂淬?br>5) 娌℃湁閿帇緙┿?br>6) 鏁版嵁鍜岀儲寮曢兘緙撳瓨鍦ㄥ唴瀛榟ash琛ㄤ腑銆?br>
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>
5. 緙撳瓨
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>
緙撳瓨鏈夊緢澶氱錛屼負搴旂敤紼嬪簭鍔犱笂閫傚綋鐨勭紦瀛樼瓥鐣ヤ細鏄捐憲鎻愰珮搴旂敤紼嬪簭鐨勬ц兘銆傜敱浜庡簲鐢ㄧ紦瀛樻槸涓涓瘮杈冨ぇ鐨勮瘽棰橈紝鎵浠ヨ繖涓閮ㄥ垎榪橀渶瑕佽繘涓姝ヨ皟鐮斻?
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
]]>
涓銆佸唴閮ㄥ嚱鏁?
銆 1銆佸唴閮ㄥ悎璁″嚱鏁?
銆銆銆 1錛塁OUNT錛?錛夈銆銆銆銆銆銆銆銆銆榪斿洖琛屾暟
銆銆銆 2錛塁OUNT錛圖ISTINCT COLNAME錛夈銆 榪斿洖鎸囧畾鍒椾腑鍞竴鍊肩殑涓暟
銆銆銆 3錛塖UM錛圕OLNAME/EXPRESSION錛夈銆 榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑鏁板煎拰錛?
銆銆銆 4錛塖UM錛圖ISTINCT COLNAME錛夈銆銆 榪斿洖鎸囧畾鍒椾腑鍞竴鍊肩殑鍜?
銆銆銆 5錛堿VG錛圕OLNAME/EXPRESSION錛夈銆 榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忎腑鐨勬暟鍊煎鉤鍧囧?
銆銆銆 6錛堿VG錛圖ISTINCT COLNAME錛夈銆銆 榪斿洖鎸囧畾鍒椾腑鍞竴鍊肩殑騫沖潎鍊?
銆銆銆 7錛塎IN錛圕OLNAME/EXPRESSION錛夈銆 榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忎腑鐨勬暟鍊兼渶灝忓?
銆銆銆 8錛塎AX錛圕OLNAME/EXPRESSION錛夈銆 榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忎腑鐨勬暟鍊兼渶澶у?
銆 2銆佹棩鏈熶笌鏃墮棿鍑芥暟
銆銆銆 1錛塂AY錛圖ATE/DATETIME EXPRESSION錛夈銆銆榪斿洖鎸囧畾琛ㄨ揪寮忎腑鐨勫綋鏈堝嚑鍙?
銆銆銆 2錛塎ONTH錛圖ATE/DATETIME EXPRESSION錛夈銆榪斿洖鎸囧畾琛ㄨ揪寮忎腑鐨勬湀浠?
銆銆銆 3錛塝EAR錛圖ATE/DATETIME EXPRESSION錛夈銆 榪斿洖鎸囧畾琛ㄨ揪寮忎腑鐨勫勾浠?
銆銆銆 4錛塛EEKDAY錛圖ATE/DATETIME EXPRESSION錛夈榪斿洖鎸囧畾琛ㄨ揪寮忎腑鐨勫綋鍛ㄦ槦鏈熷嚑
銆銆銆 5錛塂ATE錛圢OT DATE EXPRESSION錛夈銆銆銆銆榪斿洖鎸囧畾琛ㄨ揪寮忎唬琛ㄧ殑鏃ユ湡鍊?
銆銆銆 6錛塗ODAY銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆榪斿洖褰撳墠鏃ユ湡鐨勬棩鏈熷?
銆銆銆 7錛塁URRENT[first to last]銆銆銆銆銆銆銆 榪斿洖褰撳墠鏃ユ湡鐨勬棩鏈熸椂闂村?
銆銆銆 8錛塁OLNAME/EXPRESSION UNITS PRECISION銆 榪斿洖鎸囧畾綺懼害鐨勬寚瀹氬崟浣嶆暟
銆銆銆 9錛塎DY錛圡ONTH錛孌AY錛孻EAR錛夈銆銆銆銆銆銆榪斿洖鏍囪瘑鎸囧畾騫淬佹湀銆佹棩鐨勬棩鏈熷?
銆銆銆 10錛塂ATETIME錛圖ATE/DATETIME EXPRESSION錛塅IRST TO LAST 榪斿洖琛ㄨ揪寮忎唬琛ㄧ殑鏃ユ湡鏃墮棿鍊?
銆銆銆 11錛塈NTERVAL錛圖ATE/DATETIME EXPRESSION錛塅IRST TO LAST 榪斿洖琛ㄨ揪寮忎唬琛ㄧ殑鏃墮棿闂撮殧鍊?
銆銆銆 12錛塃XTEND錛圖ATE/DATETIME EXPRESSION錛孾first to last]錛夎繑鍥炵粡榪囪皟鏁寸殑鏃ユ湡鎴栨棩鏈熸椂闂?/p>
銆銆銆銆銆銆銆let tmp_date = today + 3 UNITS day
銆銆銆 渚嬪瓙2銆乴et tmp_date = MDY(10,30,2002)銆銆-- 2002-10-30
銆銆銆 渚嬪瓙3銆乴et tmp_date = today + interval(7) day to day銆--褰撳墠鏃墮棿鍔犱笂7澶╋紱
銆銆銆銆銆銆銆娉細璇ュ姛鑳戒笌1鐩鎬技錛?
銆銆銆 渚嬪瓙4銆丒XTEND杞崲鏃ユ湡鎴栨棩鏈熸椂闂村?
銆銆銆銆銆銆銆let tmp_inthour = extend(datetime1,hour to hour)
銆銆銆1錛堿BS(COLNAME/EXPRESSION)錛氥銆銆銆銆銆 鍙栫粷瀵瑰?
銆銆銆2錛塎OD錛圕OLNAME/EXPRESSION錛孌IVISOR錛夈銆榪斿洖闄や互闄ゆ暟鍚庣殑妯★紙浣欐暟錛?
銆銆銆3錛塒OW錛圕OLNAME/EXPRESSION錛孍XPONENT錛夈 榪斿洖涓涓肩殑鎸囨暟鍐?
銆銆銆銆 渚嬪瓙錛歭et tmp_float = pow(2,3)銆--8.00000000
銆銆銆7錛塗RUNC錛圕OLNAME/EXPRESSION錛孾factor]錛?榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑鎴熬鍊?
銆銆銆銆 璇存槑錛氫笂涓よ呬腑FACTOR鎸囧畾灝忔暟浣嶆暟錛岃嫢涓嶆寚瀹氾紝鍒欎負0錛涜嫢涓鴻礋鏁幫紝鍒欐暣鍖栧埌灝忔暟鐐瑰乏杈癸紱
銆銆銆銆 娉細ROUND鏄湪鎸囧畾浣嶄笂榪涜4鑸?鍏ワ紱TRUNC鏄湪鎸囧畾浣嶄笂鐩存帴鎴柇錛?
銆銆銆銆銆let tmp_float = round(4.555,2) --4.56
銆銆銆銆銆let tmp_float = trunc(4.555,2) --4.55
銆銆銆1錛塃XP錛圕OLNAME/EXPRESSION錛夈銆銆銆榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑鎸囨暟鍊?
銆銆銆2錛塋OGN錛圕OLNAME/EXPRESSION錛夈銆銆 榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑鑷劧瀵規暟鍊?
銆銆銆3錛塋OG10錛圕OLNAME/EXPRESSION錛夈銆銆榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑搴曟暟浣?0鐨勫鏁板?
銆銆銆1錛塁OS錛圧ADIAN EXPRESSION錛夈銆銆銆銆榪斿洖鎸囧畾寮у害琛ㄨ揪寮忕殑浣欏雞鍊?
銆銆銆2錛塖IN錛圧ADIAN EXPRESSION錛夈銆銆銆銆姝e雞
銆銆銆3錛塗AN錛圧ADIAN EXPRESSION錛夈銆銆銆銆姝e垏
銆銆銆4錛堿COS錛圧ADIAN EXPRESSION錛夈銆銆銆 鍙嶄綑寮?
銆銆銆5錛堿SIN錛圧ADIAN EXPRESSION錛夈銆銆銆 鍙嶆寮?
銆銆銆6錛堿TAN錛圧ADIAN EXPRESSION錛夈銆銆銆 鍙嶆鍒?
銆銆銆7錛堿TAN2錛圶錛孻錛夈銆銆銆銆銆銆銆銆銆 榪斿洖鍧愭爣錛圶錛孻錛夌殑鏋佸潗鏍囪搴︾粍浠?
銆銆銆1錛塕ANGE錛圕OLNAME錛夈銆銆 榪斿洖鎸囧畾鍒楃殑鏈澶у間笌鏈灝忓間箣宸?= MAX錛圕OLNAME錛?MIN
銆銆銆2錛塚ARIANCE錛圕OLNAME錛夈銆榪斿洖鎸囧畾鍒楃殑鏍鋒湰鏂瑰樊錛?
銆銆銆3錛塖TDEV錛圕OLNAME錛夈銆銆 榪斿洖鎸囧畾鍒楃殑鏍囧噯鍋忓樊錛?
銆銆銆1錛塙SER銆銆銆銆銆銆銆銆銆銆銆銆銆銆榪斿洖褰撳墠鐢ㄦ埛鍚?
銆銆銆2錛塇EX錛圕OLNAME/EXPRESSION錛夈銆銆 榪斿洖鎸囧畾鍒楁垨琛ㄨ揪寮忕殑鍗佸叚榪涘埗鍊?
銆銆銆3錛塋ENGTH錛圕OLNAME/EXPRESSION錛夈銆榪斿洖鎸囧畾瀛楃鍒楁垨琛ㄨ揪寮忕殑闀垮害
銆銆銆4錛塗RIM錛圕OLNAME/EXPRESSION錛夈銆銆鍒犻櫎鎸囧畾鍒楁垨琛ㄨ揪寮忓墠鍚庣殑瀛楃
銆銆銆5錛塁OLNAME/EXPRESSION || COLNAME/EXPRESSION銆榪斿洖騫跺湪涓璧風殑瀛楃錛?
銆 1銆丏BSERVERNAME銆銆銆榪斿洖鏁版嵁搴撴湇鍔″櫒鍚嶃let tmp_char=DBSERVERNAME
銆 2銆丼ITENAME銆銆銆銆銆榪斿洖鏁版嵁搴撴湇鍔″櫒鍚嶃let tmp_char=SITENAME
銆銆銆璇存槑錛氫袱鑰呭姛鑳界浉鍚岋紱
銆銆銆渚嬪瓙1錛氳繑鍥炴暟鎹腑姣忎釜琛ㄧ殑DBSPACE鍚嶇О
銆銆銆銆 select dbinfo('dbspace',partnum),tabname from systables
銆銆銆銆銆where tabid>99 and tabtype='T'銆(OK)
銆銆銆渚嬪瓙2錛氳繑鍥炰換浣曡〃涓彃鍏ョ殑鏈鍚庝竴涓猄ERIAL鍊?
銆銆銆銆銆select dbinfo('sqlca.sqlerrd1') from systables where tabid = 1
銆銆銆渚嬪瓙3錛氳繑鍥炴渶鍚庝竴涓猄ELECT錛孖NSERT錛孶PDATE錛孌ELETE鎴朎XECUTE PROCEDURE璇彞澶勭悊鐨勮鏁幫紱
銆銆銆銆銆select dbinfo('sqlca.sqlerrd2') from systables where tabid=1;
聽Date Manipulation
Operation
CURRENT - "07/01/1950" = INTERVAL (my age)
"12/25/2000" 鈥?CURRENT = INTERVAL (how long till Xmas?)
UNITS Keyword
lead_time INTERVAL DAY to DAY
SELECT lead_time + INTERVAL(10) DAY to DAY
FROM orders
SELECT lead_time + 10 UNITS DAY
FROM orders
Functions
TODAY
UPDATE member SET change_date = TODAY
WHER member_number = 12345
CURRENT
SELECT * from member
WHERE elapsed_time < CURRENT YEAR to DAY
DATE
SELECT * from member
WHERE enrollment_date > DATE('01/01/99')
DAY
SELECT * from member
WHERE DAY(enrollment_date) > DAY(CURRENT)
MONTH
SELECT * from member
WHERE enrollment_date > MONTH('01/01/99')
WEEKDAY
SELECT * from member
WHERE WEEKDAY(enrollment_date) > WEEKDAY(CURRENT)
YEAR
EXTEND
SELECT EXTEND(myvariable, YEAR to MINUTE) 鈥?
INTERVAL(5) MINUTE to MINUTE
FROM member
MDY
MDY(7,1,1950)
MDY(MONTH(TODAY), 1, YEAR(TODAY))
聽
]]>
http://fanqiang.chinaunix.net/db/informix/2001-06-12/1402.shtml聽Informix鍔ㄦ佹湇鍔″櫒閰嶇疆--6.鐩稿叧鍩烘湰姒傚康
http://fanqiang.chinaunix.net/db/informix/2005-09-07/3624.shtml聽INFORMIX錛峅NLINE鏁版嵁搴撲笁縐嶅浠芥柟娉曠殑閫夋嫨
http://fanqiang.chinaunix.net/db/informix/2005-11-14/3842.shtml聽Infomix鏁版嵁搴撶殑澶囦喚涓庢仮澶?br />http://www.linuxmine.com/3348.html聽聽聽聽聽聽INFORMIX 鐨勬暟鎹鍒舵妧鏈?br />
http://www.pcvz.com/Program/Database/Oracle/聽鏈夊叧Oracle鐨?br />
]]>