锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
璐翠竴孌典互鍓嶅湪windows涓婁嬌鐢╩ysql鐨勪唬鐮併?br />
#include聽<stdio.h>
聽2
#include聽<string.h>
聽3
#include聽<winsock2.h>
聽4
#include聽"mysql.h"
聽5
聽6
#pragma聽comment(lib,"libmySQL.lib")
聽7
聽8
void聽main()
{
聽9
聽聽聽MYSQL聽*mysql;
10
聽聽聽MYSQL_RES聽*res;
11
聽聽聽MYSQL_ROW聽row;
12
聽聽聽char聽*query;
13
聽聽聽int聽t,r;
14
聽聽聽
15
16
聽聽聽mysql=mysql_init(mysql);
17
聽聽聽if聽(!mysql_real_connect(mysql,"localhost","root","","ceshi",0,NULL,0))
18
聽聽聽
{
19
聽聽聽聽聽聽聽printf(聽"Error聽connecting聽to聽database:聽%s\n",mysql_error(mysql));
20
聽聽聽}
21
聽聽聽else
22
聽聽聽聽聽聽聽printf("Connected
\n");
23
24
聽聽聽query="Insert聽Into聽admin(username,password)聽values('whoami','iampf')";
25
聽聽聽t=mysql_real_query(mysql,query,(unsigned聽int)strlen(query));
26
聽聽聽if(t)
27
聽聽聽
{
28
聽聽聽聽聽聽聽printf("Insert聽Error:%s\n",mysql_error(mysql));
29
聽聽聽}
30
31
聽聽聽query="select聽*聽from聽admin";
32
聽聽聽t=mysql_real_query(mysql,query,(unsigned聽int)聽strlen(query));
33
聽聽聽if聽(t)
34
聽聽聽
{
35
聽聽聽聽聽聽printf("Error聽making聽query:聽%s\n",
36
聽聽聽聽聽聽聽聽聽聽聽聽聽聽mysql_error(mysql));
37
聽聽聽}
38
聽聽聽else聽printf("Query聽made
\n");
39
聽聽聽res=mysql_use_result(mysql);
40
聽聽聽for(r=0;r<mysql_field_count(mysql);r++)
{
41
聽聽聽聽聽聽聽聽聽聽聽row=mysql_fetch_row(res);
42
聽聽聽聽聽聽聽聽聽聽聽if(row<0)聽break;
43
聽聽聽聽聽聽聽聽聽聽聽for(t=0;t<mysql_num_fields(res);t++)
{
44
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽printf("%s聽",row[t]);
45
聽聽聽聽聽聽聽聽聽聽聽}
46
聽聽聽聽聽聽聽聽聽聽聽printf("\n");
47
聽聽聽}
48
聽聽聽mysql_close(mysql);
49
}
50
51
]]>
鏇句互涓篧indows鐗堟湰鐨凪ySQL瀛樺湪涓嶈兘浣跨敤UDF鐨凚UG璇告彁浜や簡涓涓猙ug鎶ュ憡銆備笉榪?br />浼間箮鍙戠幇鏄垜鎼為敊浜嗭紝MySQL鐨勬妧鏈敮鎸佷漢鍛樼粰浜嗛潪甯稿畬緹庣殑瑙g瓟錛屽悓澶у鍒嗕韓
涓涓嬨備笅杈規槸鍘熸枃鍥炲 :)
Sorry this isn't a bug.
Below I pasted a sample I did sometime ago for another user:
Ok. Assuming you have VC++ and the source distribution and a server
running,
I will create a UDF that returns a name:
Note: the sample is ugly, but the purpose here is to show you how
to handle the UDF.
- Open the mysqld.dsw workspace.
- Add New project to the workspace
- Project name: my_udf
- Select Win32 Dynamic-Link Library
- Click OK
- Select An Empty DLL project
- Click Finish
- Click OK
- Add a new file called my_udf.cpp to the project:
#include <stdlib.h>
#include <winsock.h>
#include <mysql.h>
extern "C" {
char *my_name(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
char *error);
}
char *my_name(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
char *error)
{
char * me = "my name";
return me;
}
- Type Ctrl+N for to create a new file.
- Select text type
- File name: my_udf.def
- Edit the above file with the below contents:
LIBRARY UDF_EXAMPLE
DESCRIPTION 'Example Using UDF with VC++'
VERSION 1.0
EXPORTS
my_name
- Right Click the my_udf project and select Settings
- Click the C/C++ tab
- Select General in the Category Combo
- Add the macro HAVE_DLOPEN to the PreProcessor definition
- Select Preprocessor in the Category Combo
- Add the include path to the text box: Additional Include directories
e.g: ../include
- Press F7 for to build the DLL.
- Copy the my_udf.dll to the environment path directory:
\winnt\system32 for example.
- Start the mysql client and issue:
C:\mysql-udf\bin>mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 3.23.52-max-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> CREATE FUNCTION my_name RETURNS STRING SONAME "my_udf.dll";
Query OK, 0 rows affected (0.08 sec)
mysql> select my_name();
mysql> drop function my_name;
Query OK, 0 rows affected (0.00 sec)
鐢昏泧娣昏凍鐨勪綔涓嬬畝瑕佷腑鏂囪鏄庛?br />
鎶辨瓑錛岃繖騫朵笉鏄竴涓猙ug銆備笅闈㈡垜綺樿創涓涓互鍓嶄負鏌愪釜瀹㈡埛鍋氱殑綆渚嬶紝鍋囪浣犳湁浜?br />VC++,婧愮爜鍒嗗彂錛屽茍涓旀湁涓涓甯歌繍琛岀殑MySQL鏈嶅姟鍣ㄣ?br />
鎴戝皢鍒涘緩涓涓猆DF瀹冨皢涓涓悕瀛楋細
娉ㄦ剰錛氫緥瀛愰潪甯哥畝闄嬶紝鐩殑鏄浣犱簡瑙h濡備綍澶勭悊鎵嬪ご鐨刄DF銆?br />
- 鎵撳紑 mysqld.dsw 宸ヤ綔鍖恒?br />- 娣誨姞鏂伴」鐩埌榪欎釜宸ヤ綔鍖?br />- Project name: my_udf // 欏圭洰鍚嶇О:my_udf
- 閫夋嫨 Win32 Dynamic-Link Library // Win32鍔ㄦ佽繛鎺ュ簱
- 鐐瑰嚮 OK
- 閫夋嫨 An Empty DLL project // 涓涓┖DLL欏圭洰
- 鐐瑰嚮 Finish
- 鐐瑰嚮 OK
- 娣誨姞鏂版枃浠?my_udf.cpp 鍒伴」鐩腑:
#include <stdlib.h>
#include <winsock.h>
#include <mysql.h>
extern "C" {
char *my_name(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
char *error);
// 鍏煎C
}
char *my_name(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
char *error)
{
char * me = "my name";
return me;
// 璋冪敤姝DF灝嗚繑鍥?my name
}
- 鎸?Ctrl+N 鏉ュ垱寤轟竴涓柊鏂囦歡銆?br />- 閫夋嫨 text 綾誨瀷
- File name: my_udf.def file://鏂囦歡鍚嶏細my_udf.def
- 鎸夌収涓嬭竟鐨勫唴瀹圭紪杈戞枃浠躲?br />LIBRARY UDF_EXAMPLE
DESCRIPTION 'Example Using UDF with VC++'
VERSION 1.0
EXPORTS
my_name
- 鍙沖嚮my_udf欏圭洰騫墮夋嫨Settings
- 鐐?C/C++ 閫夐」鍗?br />- 閫夋嫨 General
- 娣誨姞瀹?HAVE_DLOPE 鍒伴澶勭悊鍣ㄥ畾涔?br />- 閫夋嫨 Preprocessor
- 娣誨姞澶存枃浠惰礬寰? Additional Include directories
渚嬪: ../include
- 鎸?F7 鍘葷紪璇戞垚 DLL.
- 澶嶅埗 my_udf.dll 鍒扮幆澧冨彉閲弍ath瀹氫箟榪囩殑鐩綍
姣斿 \winnt\system32 銆?br />
- 鎵撳紑mysql瀹㈡埛绔?br />
C:\mysql-udf\bin>mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 3.23.52-max-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> CREATE FUNCTION my_name RETURNS STRING SONAME "my_udf.dll";
Query OK, 0 rows affected (0.08 sec)
mysql> select my_name();
mysql> drop function my_name;
Query OK, 0 rows affected (0.00 sec)
ok!嬈㈣繋澶у鏉ySQL鏉夸氦嫻乁DF璁捐緇忛獙錛佹垜鐨勭數瀛愰偖浠舵槸HeartIcy@163.com錛?br />鎵嬫満13706410308銆傚悓鏃訛紝鎴戜滑MySQL鏉垮噯澶囧紑濮嬬郴緇熷寲鎸佺畫鎬х炕璇慚ySQL鏂囨。錛?br />甯屾湜澶у澶氬鏀寔鍏卞悓瀹屾垚榪欎竴欏圭洰銆?br />
HeartIcy
2003騫?鏈?7鏃ヤ簬涓浗嫻庡崡
MySQL瀵逛簬鎴愪負涓涓潪甯稿揩閫熺殑鏁版嵁搴撴湇鍔″櫒鏈夌潃褰撲箣鏃犳劎鐨勫悕澹幫紝瀹冧篃闈炲父瀹規槗璁劇疆鍜屼嬌鐢ㄣ傞殢鐫瀹冧綔涓虹綉绔欏悗绔暟鎹簱寰楀0鏈涙棩澧烇紝鍏舵晥鏋滃湪鍘誨勾寮濮嬫湁鏄庢樉鎻愰珮銆備絾鏄緢澶歁ySQL鐢ㄦ埛鏇村鍦扮煡閬撳浣曞垱寤轟竴涓暟鎹簱騫剁紪鍐欏瀹冪殑鏌ヨ銆傚氨鍍忔垚鍗冧笂涓囩殑浜洪氳繃杞介棽鏆囨椂鐢↙inux鍋氬疄楠屾潵瀛︿範Unix閭f牱錛屽緢澶氫漢閫氳繃鐜㎝ySQL瀛︿範鍏崇郴鏁版嵁搴撱傝繖浜汳ySQL鏂版墜鐨勫ぇ澶氭暟鏃㈡病鏈夊叧緋繪暟鎹簱鐞嗚鐨勮儗鏅紝鍙堟病鏈夋椂闂撮槄璇籑ySQL鎵嬪唽鍏ㄦ枃銆?i>聽
鍥犳錛屾垜浠喅瀹氱爺絀舵煇浜涙柟娉曪紝浣犲彲浠ョ敤閽堝浼樺寲鎬ц兘鏉ヨ皟鑺侻ySQL銆傚湪璇誨畬鏈枃鍚庯紝浣犲皢鐞嗚В涓浜涘府鍔╀綘璁捐浣犵殑MySQL鏁版嵁搴撳拰鏌ヨ鐨勬妧鏈紝鍊煎緱浣犵殑搴旂敤寰堟湁鏁堢巼銆傛垜浠皢鍋囧畾浣犵啛鎮塎ySQL鍜孲QL鍩虹錛屼絾涓嶅亣瀹氫綘鏈夎繖涓ゆ柟闈㈢殑騫垮崥鐭ヨ瘑銆?/p>
鍙瓨鍌ㄤ綘闇瑕佺殑淇℃伅
榪欏惉涓婂幓鏄父璇嗭紝浣嗕漢浠父甯擱噰鍙栤滃帹鎴夸笅姘撮亾鈥濈殑鏂瑰紡榪涜鏁版嵁搴撹璁°備粬浠涓哄彲鑳介」瑕佸緱姣忔牱涓滆タ閮借瀛樺偍騫惰璁℃暟鎹簱淇濆瓨鎵鏈夎呰繖浜涙暟鎹備綘闇瑕佸浣犵殑闇姹傜幇瀹炰簺錛屽茍紜畾鍙栫‘瀹為渶瑕佷粈涔堜俊鎭備綘甯稿父鑳介殢鎰忎駭鐢熶竴浜涙暟鎹屼笉鎶婂畠瀛樺湪鏁版嵁搴撹〃涓傚湪榪欑鎯呭喌涓嬶紝浠庝竴涓簲鐢ㄥ紑鍙戣呯殑瑙掑害鐪嬩篃鏈夐亾鐞嗚繖鏍峰仛銆?/p>
渚嬪錛屽湪綰跨洰褰曠殑浜у搧琛ㄥ彲鑳藉寘鍚悇縐嶄駭鍝佺殑鍚嶇О銆佷粙緇嶃佸昂瀵搞侀噸閲忓拰浠鋒牸銆傞櫎浜嗕環鏍鹼紝浣犲彲鑳芥兂瀛樺偍姣忎釜欏圭洰鐩稿叧鐨勭◣鍜岃繍杈撴垚鏈備絾瀹為檯涓婁笉蹇呰繖鏍峰仛銆傞鍏堢◣鍜岃繍杈撴垚鏈彲浠ユ柟渚垮湴錛堢敱浣犵殑搴旂敤鎴朚ySQL錛夎綆楀嚭鏉ャ傚叾嬈★紝濡傛灉紼庡拰榪愯緭鎴愭湰鏀瑰彉浜嗭紝浣犲彲鑳藉繀欏葷紪鍐欏繀瑕佺殑鏌ヨ鏇存柊姣忎釜浜у搧璁板綍涓殑紼庡拰榪愯緭鐨勮垂鐜囥?/p>
鏈夋椂浜轟滑璁や負榪欏お闅句笉鑳藉湪浠ュ悗寰鏁版嵁搴撹〃涓姞鍏ュ瓧孌碉紝鎵浠ヤ粬浠劅瑙変笉寰椾笉瀹氫箟灝藉彲鑳藉鐨勫垪銆傝繖鏄槑鏄劇殑姒傚康閿欒銆傚湪MySQL涓紝浣犲彲浠ョ敤ALTER聽TABLE鍛戒護鏂逛究鍦頒慨鏀硅〃瀹氫箟浠ラ傚簲浣犳敼鍙樼殑闇姹傘?/p>
渚嬪錛屽鏋滀綘紿佺劧璁よ瘑鍒頒綘闇瑕佺粰浣犵殑浜у搧琛ㄥ鍔犱竴涓駭鍒垪錛堝彲鑳戒綘鎯沖厑璁哥敤鎴峰湪浣犵殑鐩綍涓粰浜у搧璇勭駭錛夛紝浣犲彲浠ヨ繖鏍峰仛錛?/p>
ALTER聽TABLE聽products聽ADD聽rank聽INTEGER聽聽聽
榪欑粰浣犵殑浜у搧琛ㄥ鍔犱簡涓涓暣鏁扮被鍨嬬殑綰у埆鍒楋紝浣犺兘鐢ˋLTER聽TABLE鍋氫粈涔堢殑瀹屾暣浠嬬粛鍙傝MySQL鎵嬪唽銆?/p>
鍙姹備綘闇瑕佺殑涓滆タ--瑕佹竻鏅?/p>
灝卞儚璇粹滃彧瀛樺偍浣犻渶瑕佺殑涓滆タ鈥濋偅鏍鳳紝榪欏彲鑳界湅鏉ユ槸甯歌瘑錛屼絾榪欎竴鐐瑰父甯歌蹇借錛屼負浠涔堝憿錛熷洜涓哄湪涓涓簲鐢ㄥ紑鍙戞椂錛岄渶姹傜粡甯告敼鍙橈紝鎵浠ュ緢澶氭煡璇㈡渶緇堢湅鏉ユ槸榪欐牱錛?/p>
SELECT聽*聽FROM聽sometable聽聽聽
褰撲綘涓嶈兘鑲畾浣犲皢闇瑕佸摢涓鍒楁椂錛岃姹傛墍鏈夊垪鏄庢樉鏄渶鐪佸姏鐨勪簨鎯咃紝鐒惰岄殢鐫浣犵殑琛ㄤ笉鏂澶у拰淇敼錛岃繖鍙兘鍙樻垚涓涓ц兘闂銆傛渶濂芥槸鍦ㄤ綘鐨勬渶鍒濆紑鍙戝畬鎴愬悗鍐嶈姳浜涙椂闂村茍紜畾浣犵湡姝d粠浣犵殑鏌ヨ涓渶瑕佷粈涔堬細
SELECT聽name,聽rank,聽description聽FROM聽products聽
銆聽
榪欏甫鏉ヤ簡涓涓浉鍏崇殑瑙傜偣錛屽嵆浠g爜緇存姢姣旀ц兘鏇撮噸瑕併傚ぇ澶氭暟鍙樻垚璇█錛圥erl銆丳ython銆丳HP銆丣ava絳夛級鍏佽閫氳繃瀛楁鍚嶅拰鏁板瓧緙栧彿璁塊棶涓鏉℃煡璇㈢殑緇撴灉錛岃繖鎰忓懗鐫浣犲彲浠ヨ闂懡鍚嶅瓧孌墊垨瀛楁錛愰兘鍙互寰楀埌鐩稿悓鐨勬暟鎹?/p>
闀挎湡鐪嬶紝鏈濂戒嬌鐢ㄥ垪鍚嶈屼笉鏄叾緙栧彿浣嶇疆錛屼負浠涔堬紵鍥犱負涓涓〃涓垨涓鏉℃煡璇腑鍦板垪鐨勭浉瀵逛綅緗彲浠ユ敼鍙樸傚畠浠湪琛ㄤ腑鍙兘鍥犱負閲嶅浣跨敤ALTER聽TABLE鑰屾敼鍙橈紝瀹冧滑鍦ㄦ煡璇腑灝嗗洜閲嶅啓浜嗘煡璇㈣屽繕璁版洿鏂板簲鐢ㄩ昏緫鏉ュ尮閰嶈屾敼鍙樸?/p>
褰撶劧錛屼綘浠嶇劧闇瑕佸皬蹇冩敼鍙樺垪鍚嶏紒浣嗗鏋滀綘浣跨敤鍒楀悕鑰岄潪鏍囧彿浣嶇疆錛屽鍒楀悕鏀瑰彉錛屼綘鍙互鐢╣rep鎼滅儲婧愪唬鐮佹垨浣跨敤緙栬緫鍣ㄧ殑鎼滅儲鑳藉姏鏌ユ壘浣犻渶瑕佷慨鏀圭殑浠g爜銆?/p>
瑙勮寖鍖栦綘鐨勮〃緇撴瀯
濡傛灉浣犱互鍓嶄粠鏈惉璇磋繃鈥滄暟鎹鑼冨寲鈥濓紝涓嶈瀹蟲曘傝鑼冨寲鍙兘鏄竴涓鏉傜殑涓撻錛屼綘鍙互浠庡彧鐞嗚В鏈鍩烘湰鐨勮鑼冨寲姒傚康涓鐪熸鑾風泭銆?/p>
鐞嗚В瀹冪殑鏈瀹規槗鐨勬柟娉曟槸璁や負浣犵殑琛ㄦ槸涓涓數瀛愭姤琛ㄣ傚鏋滀綘鎯充互涓涓姤琛ㄨ窡韙綘鐨凜D鏀惰棌錛屼綘鍙互濡傚浘錛戠閭f牱榪涜璁捐錛?/p>
鍥撅紤
album聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽track1聽聽聽聽聽聽聽聽track2聽聽聽聽聽聽聽聽聽聽聽聽聽track10
-----聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽------聽聽聽聽聽聽聽聽------聽聽聽聽聽聽聽聽聽聽聽聽聽-------
Billboard聽Top聽Hits聽-聽1984聽聽Loverboy聽聽聽聽聽聽Shout聽聽聽聽聽聽聽聽聽聽聽聽聽聽St.聽Elmo's聽Fire
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽(Billy聽Ocean)聽(Tears聽for聽Fears)聽(John聽Parr)
聽
榪欑湅涓婂幓寰堝悎鐞嗐傚ぇ澶氭暟CD鍙湁10棣栨洸瀛愶紝瀵瑰惁錛熶笉灝界劧銆傚鏋滀綘鎷ユ湁涓寮犳湁100棣栨洸瀛愮殑CD涓斿嚑寮犺秴榪?0棣栨敼鎬庝箞鍔炪傝繖鎰忓懗鐫鐢ㄨ繖縐嶆柟娉曪紝鍦ㄦ瀬绔殑鎯呭喌涓嬶紝浣犲皢闇瑕佷竴涓潪甯稿鐨勮〃鏍鹼紙鎴栦竴涓秴榪?00涓瓧孌電殑琛級鏉ヤ繚瀛樻墍鏈夌殑鏁版嵁銆?/p>
瑙勮寖鍖栬〃緇撴瀯鐨勭洰鏍囨槸浣庫滅┖鍗曞厓鈥濈殑鏁伴噺鏈灝戯紝鍦ㄤ笂榪癈D琛ㄧ殑鎯呭喌涓嬶紝濡傛灉浣犲厑璁窩D鍙兘鍖呭惈100棣栨洸瀛愶紝浣犱細鏈夊緢澶氳繖鏍風殑絀哄崟鍏冦備笉綆′綘浣曟椂澶勭悊鍙兘鎵╁睍鍒扮被浼艱CD琛ㄩ偅鏍鋒暟閲忕殑瀛楁鍒楄〃錛屽畠鏄綘闇瑕佸皢浣犵殑鏁版嵁鍒嗗壊鎴?涓垨鏇村琛ㄧ殑鏍囧織錛岀劧鍚庝綘涓璧瘋闂茍鑾峰緱浣犻渶瑕佺殑鏁版嵁銆?/p>
寰堝鍏崇郴鏁版嵁搴撶殑鏂版墜涓嶇湡姝g煡閬撳叧緋繪暟鎹簱綆$悊緋葷粺涓叧緋繪槸浠涔堛傜畝鍗曞湴璇達紝灝卞儚涓緇勪俊鎭瓨鍦ㄥ彲浠ュ熀浜庡叡鎬ф暟鎹仈緇擄紙JOIN錛夊湪涓璧風殑涓嶅悓琛ㄤ腑錛屽緢涓嶅垢錛岃繖鍚笂鍘繪洿瀛︽湳鍖栧拰鍚硦錛屼絾CD鏁版嵁搴撴彁鍑轟簡涓涓叿浣撴儏鍐碉紝鎴戜滑鍙互鐮旂┒濡備綍瑙勮寖鏁版嵁銆?/p>
姣忎釜CD鍒楄〃鏈変竴涓浐瀹氱殑灞炴э紙鏍囬銆佽壓鏈銆佸勾浠姐佸垎綾伙級闆嗗拰涓涓笉瀹氱殑灞炴э紙鏇茬洰琛級闆嗙殑鐞嗚В緇欎簡鎴戜滑涓浜涘浣曞垎鎴愭垚鑳界浉浜掑叧鑱旂殑琛ㄧ殑鎬濊礬銆?/p>
浣犲彲浠ュ垱寤轟竴涓墍鏈変笓杈戝強鍏跺浐瀹氬睘鎬х殑琛紝鍙︿竴涓寘鍚繖浜涗笓杈戠殑鎵鏈夋洸鐩殑琛ㄣ傝繖鏍蜂笉鏄按騫蟲濊冿紙鍍忚〃鏍鹼級錛屼綘鍨傜洿鎬濊?-灝卞ソ鍍忎綘鍒涘緩鍒楄〃鑰屼笉鏄--騫跺緩绔嬩竴涓鍥?鐨勮〃緇撴瀯錛?br />
涓撹緫鐨勭紪鍙鳳紙MySQL闀滆嚜鍔ㄤ負浣犵敓鎴愶紝鍥犱負鎴戜滑鍦ㄥ垪涓婁嬌鐢ㄤ簡AUTO_INCREMENT灞炴э級鍏寵仈涓嶅悓鏇茬洰鍒頒竴緇欏畾涓撹緫錛宼racks琛ㄤ腑鐨刟lbum_id瀛楁鍖歸厤涓撹緫琛ㄤ腑鐨勪竴涓猧d銆傝繖鏍瘋鑾峰緱緇欏畾涓撹緫鐨勬墍鏈夋洸鐩紝浣犲簲璇ョ敤濡備笅鏌ヨ錛?/font>
銆SELECT聽tracks.num,聽tracks.name
聽聽聽FROM聽albums,聽tracks
聽聽聽WHERE聽albums.title聽=聽'Billboard聽Top聽Hits聽-聽1984'
聽聽聽AND聽albums.id聽=聽tracks.album_id
銆聽
璇ョ粨鏋勫嵆鐏墊椿鍙堟湁鏁堛傜伒媧繪ф潵鑷綘鍙互鍦ㄤ互鍚庡皢鏁版嵁鍔犲叆緋葷粺鑰屼笉蹇呴噸鏂頒綘宸插畬鏁寸殑宸ヤ綔鐨勪簨瀹炪備緥濡傦紝濡傛灉浣犳兂澧炲姞姣忎竴寮犱笓杈戠殑鑹烘湳瀹朵俊鎭紝浣犲彲浠ュ簥鏋朵竴涓猘rtists琛紝鍏寵仈鍒癮lbums琛紝灝卞儚tracks閭f牱銆備綘鏃犻渶淇敼鐜版湁鐨勭粨鏋?-鍙槸澧炲姞瀹冦?/p>
鏈夋晥鎬ф潵鑷簬鍦ㄤ綘鐨勬暟鎹腑娌℃湁鏄庢樉鐨勬暟鎹噸澶嶄笖娌℃湁澶ч噺鐨勭┖媧烇紙絀哄崟鍏冿級鐨勫疄鏂姐傝繖鏍稭ySQL鍦ㄤ綘鐨勬暟鎹簱琛ㄤ腑鏃笉瀛樺偍澶氫綑鐨勬暟鎹紝涔熶笉姣旇姳棰濆鐨勭簿鍔涙悳绱㈠ぇ閲忕┖鍖哄煙銆?/p>
濡傛灉浣犲鍏崇郴鏁版嵁搴撴槸鏂版墜錛岃鑼冨寲浣犵殑鏁版嵁鐪嬭搗鏉ユ湁鐐瑰鎬紝浣嗗湪瀛樺偍鍜屾绱㈡暟鎹椂錛屽畠浣縈ySQL闈炲父鏈夋晥錛屽茍緇欎簣浣犳墿灞曞拰浼哥緝浣犵殑搴旂敤鍗翠笉蹇呭嬈¢噸鏋勪綘鐨勬暟鎹簱鐨勭伒媧繪с傚敖鍙兘鏃╃殑鑺辨椂闂存兂娓呮鏁版嵁搴撹璁★紝騫惰冭檻浣犵殑闇姹傛庢牱闅忔椂闂村闀匡紝鍓嶆湡鑺辯殑鏃墮棿姘歌繙鏄煎緱鐨勩?/p>
澶嶅悎绱㈠紩
澶嶅悎绱㈠紩錛堟湁鏃剁О緇勫悎绱㈠紩錛夋槸鎬ヤ簬澶氫釜鍒楃殑鍗曚竴绱㈠紩銆侻ySQL鍦ㄥ鐞嗕竴鏉℃煡璇㈡椂姣忎釜琛ㄥ彧浣跨敤涓涓儲寮曪紝榪欐剰鍛崇潃濡傛灉浣犳湁澶氫釜緇忓父鍑虹幇鍦╓HERE瀛愬彞涓殑鍒楋紝浣犲彲鑳借閫氳繃鍒涘緩涓涓鍚堢儲寮曟潵鍔犲揩榪欎簺鏌ヨ銆?/p>
鑰冭檻涓嬪垪琛ㄧ粨鏋勭墖鏂細
銆CREATE聽TABLE聽people聽(
聽聽聽last_name聽聽聽聽聽聽聽VARCHAR(50)聽NOT聽NULL,
聽聽聽first_name聽聽聽聽聽聽VARCHAR(50)聽NOT聽NULL,
聽聽聽favorite_color聽聽VARCHAR(10)聽NOT聽NULL,
聽聽聽.
聽聽聽.
聽聽聽.
);
銆聽
濡傛灉浣犲父甯稿熀浜巐ast_name鍜宖irst_name鏌ヨ琛紝浣犲彲浠ヤ粠last_name鍜宖irst_name鐨勫鍚堢儲寮曚腑鑾風泭錛?/p>
INDEX聽last_first聽(last_name,聽first_name)聽
鐢變簬MySQL鏋勫緩澶嶅悎绱㈠紩鐨勬柟寮忥紝瀹冨彲浠ヤ嬌鐢╨ast_first绱㈠紩鏉ュ洖絳斿熀浜巐ast_name鏈韓鎴杔ast_name涓巉irst_name涓よ呯殑绱㈠紩銆傝繖鏄洜涓哄鏋滃垪娑夊強澶嶅悎绱㈠紩鐨勨滄渶宸﹀墠緙鈥濈殑褰㈠紡錛孧ySQL灝嗗彧浣跨敤涓涓鍚堢儲寮曘?/p>
鎵浠ュ鏋滀竴涓鍚堢儲寮曟湁澶氫釜鍒楀悎鎴愶細
INDEX聽big_index聽(a,聽b,聽c,聽d,聽e,聽f,聽g,聽h,聽i)聽
MySQL鍙互鐢ㄥ畠鏉ュ洖絳斿熀浜巃銆佹垨a鍜宐銆佹垨a鍜宐鍜宑銆佹垨a鍜宐鍜宑鍜宒鐨勬煡璇€備絾瀹冧笉鑳戒嬌鐢╞ig_index澶勭悊鍩轟簬e銆佹垨c鍜宖銆佹垨g鍜宨鐨勬煡璇紝鍥犱負榪欎簺搴忓垪娌℃湁涓涓槸浠庣儲寮曠殑鏈宸﹁竟寮濮嬬殑銆?/p>
澶嶅悎绱㈠紩灝濊鐢ㄤ簬鍔犲揩鏌愪簺澶嶆潅鏌ヨ錛屼絾浣犻渶瑕佺悊瑙h搗灞闄愶紝鑰屼笖浣犳案榪滃簲璇ヨ繘琛屼竴浜涙祴璇曪紝鑰屼笉鏄畝鍗曞湴鍋囪榪欐牱涓涓儲寮曞皢浼氭湁甯姪銆?/p>
聽
銆聽
浣跨敤绱㈠紩鍔犲揩鏌ヨ
褰揗ySQL璇曞浘鍥炶揪涓鏉℃煡璇㈡椂錛屽畠鏌ョ湅鏈夊叧浣犵殑鏁版嵁鐨勫悇縐嶇粺璁★紝騫跺喅瀹氬浣曚互鏈蹇殑閫熷害鎵懼嚭浣犳兂瑕佺殑鏁版嵁銆傚浜庡墠灝忚妭鐨勬煡璇紝MySQL灝嗚鍙朼lbums琛ㄧ殑鎵鏈塼itles騫舵妸瀹冧滑涓庘淏illboard聽Top聽Hits聽--1984鈥濊繘琛屾瘮杈冪湅鏄惁鍖歸厤銆傚畠涓鏃︽壘鍒頒竴涓尮閰嶈繕涓嶈兘鍋滄錛屽洜涓烘湁鐩稿悓鏇茬洰鐨勪笓杈戜笉姝竴涓紙濡備綘鍙互鏈?2寮燙D鏍囨湁鈥淕reatest聽Hits鈥濓級錛岀粨鏋淢ySQL蹇呴』璇誨彇琛ㄤ腑鐨勬瘡涓琛屻傝繖甯哥О涓衡滃叏琛ㄦ壂鎻忊濅笖鍙互閬垮厤銆?/p>
浣犲簲璇ラ伩鍏嶅叏琛ㄦ壂鎻忥紝鍥犱負錛?/p>
CPU寮閿錛氬鏋滀綘娌℃湁寰堝涓撹緫錛屾鏌ユ墍鏈夎繖浜涙爣棰樼殑澶勭悊鐩稿蹇簺銆備絾濡傛灉浣犻渶瑕佸湪浣犵殑鏁版嵁搴撲腑瀛樺偍寰堝涓撹緫鍛紵浣犳湁鐨勪笓杈戣秺澶氾紝鑺辯殑鏃墮棿瓚婇暱銆傚湪涓撹緫鏁伴噺鎴栨鏌ュ畠浠墍鑺辯殑鏃墮棿鏃墮棿瀛樺湪涓縐嶇嚎鎬у叧緋匯?i>聽
騫跺彂鎬э細鍦∕ySQL姝e湪浠庤〃涓鍙栨暟鎹椂錛屽畠閿佸畾琛ㄤ嬌寰楁病鏈夊叾浠栦漢鍙互鍐欏叆錛屼絾鍙互璇誨彇銆傚綋MySQL鏇存柊鎴栧垹闄よ〃涓殑琛屾椂錛屽畠閿佸畾琛ㄤ嬌寰楁病鏈夊叾浠栦漢鍙互浠庡畠璇誨彇銆?i>聽
紓佺洏寮閿錛氬湪涓涓ぇ鏁版嵁琛ㄤ笂錛屼竴嬈″叏琛ㄦ壂鎻忓皢娑堣楀ぇ閲忕鐩業/O銆傝繖鍙兘鏄庢樉鍦板噺鎱綘鐨勬暟鎹簱鏈嶅姟鍣?i>聽--聽鐗瑰埆鏄鏋滀綘鐨勬湇鍔″櫒鏄緝鎱㈢殑IDE椹卞姩鍣ㄣ?i>聽
鏈濂芥槸璁╁叏琛ㄦ壂鎻忓皢鍒版渶灝?i>聽--銆鐗瑰埆鏄綘鐨勫簲鐢ㄩ渶瑕佷互瑙勬ā鎴栫敤鎴鋒暟浼哥緝銆侻ySQL鏈鏂扮増紜疄鏈夊嚑涓茍鍙戞ф柟闈㈢殑鏀瑰杽錛圔DB銆両nnoDB鍜孏emini琛ㄧ被鍨嬶級銆?/p>
鍦ㄨ繖閲岀儲寮曞彲浠ュ府鍔╀綘錛岀畝鍗曞湴鏀句竴涓紝涓涓儲寮曞厑璁窶ySQL寰堝揩鍦扮‘瀹氫換浣曠粰瀹氬煎鈥淏illboard聽Top聽Hits聽--聽1984鈥濇槸鍚﹀皢鍖歸厤琛ㄤ腑鐨勪換浣曡銆?/p>
鎬庢牱鍋氬埌鐨勫憿錛熷綋浣犲憡璇塎ySQL绱㈠紩涓涓壒瀹氬垪鏃訛紝瀹冨湪騫曞悗鍒涘緩鍙︿竴涓暟鎹粨鏋勶紙绱㈠紩錛夊茍鐢ㄥ畠瀛樺偍鍏充簬琚儲寮曞垪涓殑鍊肩殑鏌愪簺棰濆淇℃伅錛堣绱㈠紩鐨勫煎父縐頒負鍋ョ爜錛夈傝繖鏄竴縐嶇畝鍖栵紝MySQL灝嗘墍鏈夐敭鐮佸瓨鍌ㄥ湪涓涓爲鐘舵暟鎹粨鏋勪腑銆傝鏁版嵁緇撴瀯鍏佽MySQL闈炲父蹇熷湴鎵懼埌鐗瑰畾閿爜銆?/p>
褰揗ySQL鍙戠幇鍒椾笂鏈変竴涓儲寮曪紝瀹冨皢浣跨敤绱㈠紩鑰屼笉鏄墽琛屼竴涓叏琛ㄦ壂鎻忋傝繖鑺傜渷浜咰PU鏃墮棿錛堜笉蹇呰鍙栨墍鏈夊彲鑳界殑鍊鹼級鍜岀鐩業/O錛岃屼笖瀹冩敼鍠勪簡騫跺彂鎬э紝鍥犱負MySQL鍙攣瀹氳〃瓚沖闀跨殑鏃墮棿鏉ヨ幏寰楁墍闇鐨勮錛堝熀浜庡畠鍦ㄧ儲寮曚腑鎵句粈涔堬級銆傚綋浣犲湪琛ㄤ腑鏈夊ぇ閲忕殑鏁版嵁錛屾渶緇堢殑鏀瑰杽鍙兘闈炲父鏄庢樉銆?/p>
瀵瑰浘3鐨刟lbums琛ㄧ殑CREATE聽TABLE璇彞鐨勬敼榪涳細
鍥?
CREATE聽TABLE聽albums聽(
聽聽聽聽id聽聽聽聽聽聽聽聽INTEGER聽聽聽聽聽聽NOT聽NULL聽AUTO_INCREMENT聽PRIMARY聽KEY,
聽聽聽聽title聽聽聽聽聽VARCHAR(80)NOT聽NULL,
聽聽聽聽
聽聽聽聽INDEX聽title_idx聽(title)
);
聽
姝e浣犳墍瑙佺殑錛岃鍙ュ彧鏄畝鍗曞湴鍦ㄥ畾涔夊悗澧炲姞浜嗕竴涓狪NDEX琛屽憡璇塎ySQL鍦╝lbums琛ㄤ腑鐨則itle鍒椾笂鍒涘緩鍚嶄負title_idx鐨勭儲寮曘備綘鍙互緇欎竴涓〃澧炲姞澶氫釜绱㈠紩錛屽氨鍍忎綘鍙湪琛ㄤ腑鏈夊涓垪涓鏍楓傚崟涓儲寮曚篃鍙互鏈夊涓垪鍚堟垚銆?/p>
瑕佺粰鐜版湁鐨勮〃鍔犱笂涓涓儲寮曡屼笉鏄噸寤鴻〃錛屼綘鍙互鐢ˋLTER聽TABLE鍛戒護錛?/p>
ALTER聽TABLE聽albums聽ADD聽INDEX聽title_idx聽(title)聽聽
鏌ヨ澶勭悊
濡傛灉浣犵殑鏌ヨ澶嶆潅錛孧ySQL鐢ㄤ簬綺劇‘紜畾濡備綍鑾峰彇鏁版嵁鐨勫師鍒欏彲鑳藉彉寰楅毦浜庣悊瑙c傚垢榪愮殑鏄紝鏈夊嚑涓竴鑸師鍒欏拰涓鏉″懡浠ゅ厑璁鎬綘鑾峰緱姝e湪鍋氫粈涔堢殑鏇村ソ鐨勭悊瑙c傞鍏堬紝鍘熷垯鏄細
濡傛灉MySQL紜畾浜嗙畝鍗曞湴鎵弿鍏ㄨ〃鏇村揩浜涳紝鍒欏畠L灝嗕笉浣跨敤绱㈠紩銆備竴鑸湴錛屽鏋滀竴涓儲寮曞憡璇塎ySQL璁塊棶琛ㄤ腑澶ф30%鐨勮錛屽畠鏀懼純绱㈠紩騫剁畝鍗曞湴鎵ц鍏ㄨ〃鎵弿銆?i>聽
濡傛灉澶氱儲寮曞彲浠ョ敤鏉ユ弧瓚蟲煡璇紝MySQL灝嗕嬌鐢ㄦ渶涓ユ牸鐨勪竴涓?i>聽--聽鍗沖鑷存渶灝戠殑琛岃鎻愬彇鐨勯偅涓?i>聽
濡傛灉浣犳鍦ㄩ夋嫨鐨勫垪鏄竴涓儲寮曠殑鎵鏈夐儴鍒嗭紝MySQL鍙互鐩存帴浠庣儲寮曚腑璇誨彇閿侀渶鐨勬暟鎹紝緇濅笉鎺ヨЕ錛堟垨閿佸畾錛夎〃鏈韓銆?i>聽
褰撹仈緇撳嚑涓〃鏃訛紝MySQL灝嗛鍏堜粠鍙兘榪斿洖鏈灝戣鐨勮〃涓鍙栨暟鎹備綘鎸囧畾琛ㄧ殑嬈″簭鍙兘涓嶮ySQL浣跨敤瀹冧滑鐨勬搴忎笉鍚岋紝榪欎篃褰卞搷鍒版渶緇堣繑鍥炵粰浣犵殑琛岀殑嬈″簭錛屾墍浠ュ鏋滀綘闇瑕佽浠ョ壒瀹氱殑嬈″簭鍑虹幇錛岃淇濊瘉鍦ㄤ綘鐨勬煡璇腑浣跨敤涓涓狾RDER瀛愬彞銆?i>聽
宸茬粡璇翠簡寰堝浜嗭紝閲嶈鐨勬槸璁よ瘑鍒癕ySQL鎵鍋氱殑涓浜涘喅絳栧疄闄呬笂鏄熀浜庣寽嫻嬶紝灝卞儚浜虹被榪涜澶ч噺鐚滄祴涓鏍鳳紝鍋跺皵涔熶細鍑洪敊銆?i>聽
濡傛灉浣犳鐤戝凡緇忓彂鐢熸垨鍙槸鎯崇悊瑙ySQL鎬庢牱澶勭悊涓鏉℃煡璇紝浣犲彲浠ヤ嬌鐢‥XPLAIN鍛戒護銆傜畝鍗曞湴鍦ㄤ綘鐨勬煡璇㈠墠闈㈠姞涓奅XPLAIN榪欎釜瀛楋紝騫惰姹侻ySQL鎵ц瀹冿紝MySQL涓嶆墽琛屾煡璇紝鐩稿弽灝嗘姤鍛婃湁鍔╀簬鏌ヨ鐨勫欓夌儲寮曞垪琛ㄥ拰鎵鐭ラ亾鐨勬湁鍏沖畠浠殑涓鍒囥?/p>
EXPLAIN杈撳嚭鐨勫畬鏁磋璁哄弬瑙丮ySQL鍙傝冩墜鍐屻?br />聽
涓嶈榪囧垎浣跨敤绱㈠紩
宸茬粡鐭ラ亾绱㈠紩浣挎煡璇㈡洿蹇紝浣犲彲鑳藉懼悜浜庣儲寮曚綘琛ㄤ腑鐨勬瘡涓垪銆備絾鏄緱鐩婁簬绱㈠紩鐨勬ц兘鎻愰珮鏄湁浠d環鐨勶紝鍦ㄨ〃涓瘡嬈℃墽琛孖NSERT銆乁PDATE銆丷EPLACE鎴朌ELETE錛孧ySQL涓嶅緱涓嶆洿鏂拌〃涓婄殑姣忎釜绱㈠紩浠ュ弽鏄犲彉鍖栥?/p>
閭d箞浣犲浣曠‘瀹氫綍鏃墮鐢ㄥ畠浠憿錛熸渶甯歌鐨勭瓟妗堟槸鈥滅湅鎯呭喌鈥濄傚畠渚濊禆浣犺繍琛岀殑鏌ヨ綾誨瀷鍜屼綘榪愯瀹冧滑鐨勯搴︼紝瀹冧緷璧栦簬浣犵殑鏁版嵁錛屽畠渚濊禆浜庝綘鐨勬湡鏈涘拰闇姹傘備綘寰楀埌浜嗙瓟妗?i>聽--聽瀹冧緷璧栦簬寰堝浜嬫儏銆?/p>
鍦ㄥ垪涓婃湁绱㈠紩鐨勭悊鐢辨槸MySQL緙╃獎鍏舵悳绱㈣寖鍥翠互渚垮敖鍙兘浼氱殑鍖歸厤琛岋紙涓旈伩鍏嶅叏琛ㄦ壂鎻忥級銆備綘鍙互璁や負绱㈠紩鏄鍒椾腑鐨勬瘡涓敮涓鍊煎彧鍖呭惈涓欏廣傚湪绱㈠紩涓紝MySQL蹇呴』鑰冭檻浠諱綍閲嶅鍊鹼紝榪欎簺閲嶅鍊肩◢寰檷浣庢晥鐜囧拰绱㈠紩鐨勭敤閫斻?/p>
鎵浠ュ湪绱㈠紩涓涓垪涔嬪墠錛岃冭檻鏁版嵁閲嶅鐨勭櫨鍒嗘瘮錛屽鏋滆鐧懼垎姣斿お楂橈紝浣犲彲鑳借瀵熶笉鍒扮敤绱㈠紩甯︽潵鐨勪換浣曟ц兘鏀瑰杽銆?/p>
瑕佷互鏇寸畝鏄庣殑鏈鎻忚堪錛屽畠娓呮鍦扮煡閬撳湪albums琛ㄤ腑绱㈠紩鏇茬洰瀛楁錛屽洜涓烘湁鍙兘鏈夊ぇ閲忎笉鍚岀殑鍊鹼紝鑰屼笖閲嶅闈炲父灝戙備絾濡傛灉鍦╝lbums琛ㄤ腑鏈変竴涓垎綾誨垪錛岀儲寮曞畠鍒欏彲鑳戒環鍊間笉澶э紝涓鑸殑CD鏀墮泦鍖呭惈澶氬皯涓嶅悓鐨勭被鍨嬪憿錛熷皢浼氭湁寰堝閲嶅鐨勭被鍨嬪箋?/p>
鍙︿竴浠惰鑰冭檻鐨勪簨鎯呮槸浣犵殑鏌ヨ鍙兘浣跨敤鐨勯搴︺侻ySQL鍙兘瀵瑰嚭鐜板湪涓鏉℃煡璇㈢鐨刉HERE瀛愬彞涓殑鐗瑰畾鍒椾嬌鐢ㄧ儲寮曪紝璇曞浘鍥炵瓟鏌ヨ錛?/p>
SELECT聽*聽FROM聽albums聽WHERE聽id聽=聽500聽聽聽
MySQL涓嶈兘浣跨敤鍦╰itle涓婄殑鏌ヨ錛岃鏌ヨ瑕佹眰MySQL鍩轟簬鍏秈d鏌ユ壘璁板綍鑰屼笉鏄叾title銆?i>聽
濡傛灉浣犲緢灝戜嬌鐢ㄦ煡璇腑WHERE瀛愬彞涓殑涓涓垪錛屽畠鍙兘涓嶅煎緱绱㈠紩璇ュ垪銆傚彲鑳藉湪鏋佸皯鐨勬儏鍐典笅瀹逛漢鍏ㄨ〃鎵弿姣旇姹侻ySQL鍦ㄦ瘡嬈′慨鏀規椂淇濇寔绱㈠紩鏇存柊鎬諱綋涓婃洿鏈夋晥浜涖?
鏈夌枒闂椂錛岃繘琛屾祴璇曘備綘鎬昏兘榪愯鏌愪簺鍒扮儲寮曟垨涓嶅甫绱㈠紩鐨勫熀鍑嗘祴璇曠湅鍝竴涓洿蹇紝鍙璇曞浘璁╀綘鐨勫熀鍑嗘祴璇曢肩湡浜涖傚鏋滀綘鐨勬煡璇㈡湁20%鏄疷PDATE錛?0%鏄疭LEECT錛岃偗瀹氫綘鐨勫熀鍑嗘祴璇曡兘鍙戞槧鍑烘潵錛岃瑙丮ySQL鍙傝冩墜鍐屻?/p>
浣跨敤REPLACE鏌ヨ
鏈夊彲鑳戒綘鎯沖線琛ㄤ腑鎻掑叆涓鏉¤褰曪紝闄ら潪瀹冨凡緇忓瓨鍦ㄣ傚鏋滆褰曞凡緇忓瓨鍦紝浣犳兂UPDATE瀹冦備笉鏄噸鍐欎唬鐮佷腑鍋氳繖浠朵簨鐨勯昏緫錛屽茍闇榪愯澶氫釜鏌ヨ錛岃屾槸MySQL浣跨敤REPLACE鏉ュ仛姝ら」宸ヤ綔銆?/p>
濡傛灉id鏄?鐨勪笓杈戝亣瀹氭湁鏇茬洰鈥淪haking聽the聽Tree鈥濓紝浣犲彲浠ヨ繖鏍峰啓鏌ヨ錛?/p>
REPLACE聽INTO聽albums聽valueS聽(6,聽'Shaking聽the聽Tree')聽聽聽
閲嶈鐨勬槸鐞嗚ВREPLACE濡備綍紜畾涓鏉¤褰曟槸鍚﹀湪琛ㄤ腑瀛樺湪銆侻ySQL灝嗗湪琛ㄤ笂浣跨敤PRIMARY聽KEY鎴朥NIQUE聽KEY鏉ユ墽琛屾鏌ワ紝濡傛灉閮戒笉瀛樺湪錛孯EPLACE鏁堟灉涓婂彉鎴愪簡INSERT銆?/p>
浣跨敤涓存椂琛?/p>
褰撳伐浣滃湪闈炲父澶х殑琛ㄤ笂鏃訛紝浣犲彲鑳藉伓灝旈渶瑕佽繍琛屽緢澶氭煡璇㈣幏寰椾竴涓ぇ閲忔暟鎹殑灝忕殑瀛愰泦錛屼笉鏄鏁翠釜琛ㄨ繍琛岃繖浜涙煡璇紝鑰屾槸璁㎝ySQL姣忔鎵懼嚭鎵闇鐨勫皯鏁拌褰曪紝灝嗚褰曢夋嫨鍒頒竴涓復鏃惰〃鍙兘鏇村揩浜涳紝鐒跺悗澶氳繖浜涜〃榪愯鏌ヨ銆?/p>
鍒涘緩涓存椂琛ㄥ緢瀹規槗錛岀粰姝e父鐨凜REATE聽TABLE璇彞鍔犱笂TEMPORARY鍏抽敭瀛楋細
CREATE聽TEMPORARY聽TABLE聽tmp_table聽(
聽聽聽name聽聽聽聽VARCHAR(10)聽NOT聽NULL,
聽聽聽value聽聽聽INTEGER聽聽聽聽聽NOT聽NULL
)
涓存椂琛ㄥ皢鍦ㄤ綘榪炴帴MySQL鏈熼棿瀛樺湪銆傚綋浣犳柇寮鏃訛紝MySQL灝嗚嚜鍔ㄥ垹闄よ〃騫墮噴鏀炬墍鐢ㄧ殑絀洪棿銆傚綋鐒朵綘鍙互鍦ㄤ粛鐒惰繛鎺ョ殑鏃跺欏垹闄よ〃騫墮噴鏀劇┖闂淬?/p>
DROP聽TABLE聽tmp_table聽聽聽
濡傛灉鍦ㄤ綘鍒涘緩鍚嶄負tmp_table涓存椂琛ㄦ椂鍚嶄負tmp_table鐨勮〃鍦ㄦ暟鎹簱涓凡緇忓瓨鍦紝涓存椂琛ㄥ皢鏈夊繀瑕佸睆钄斤紙闅愯棌錛夐潪涓存椂琛╰mp_table銆?/p>
濡傛灉浣犲0鏄庝復鏃惰〃鏄竴涓狧EAP琛紝MySQL涔熷厑璁鎬綘鎸囧畾鍦ㄥ唴瀛樹腑鍒涘緩瀹冿細
銆CREATE聽TEMPORARY聽TABLE聽tmp_table聽(
聽聽聽name聽聽聽聽VARCHAR(10)聽NOT聽NULL,
聽聽聽value聽聽聽INTEGER聽聽聽聽聽NOT聽NULL
)聽TYPE聽=聽HEAP
銆聽
鍥犱負HEAP琛ㄥ瓨鍌ㄥ湪鍐呭瓨涓紝浣犲瀹冭繍琛岀殑鏌ヨ鍙兘姣旂鐩樹笂鐨勪復鏃惰〃蹇簺銆傜劧鑰岋紝HEAP琛ㄤ笌涓鑸殑琛ㄦ湁浜涗笉鍚岋紝涓旀湁鑷韓鐨勯檺鍒躲傝瑙丮ySQL鍙傝冩墜鍐屻?/p>
姝e鍓嶉潰鐨勫緩璁紝浣犲簲璇ユ祴璇曚復鏃惰〃鐪嬬湅瀹冧滑鏄惁鐪熺殑姣斿澶ч噺鏁版嵁搴撹繍琛屾煡璇㈠揩銆傚鏋滄暟鎹緢濂藉湴绱㈠紩錛屼復鏃惰〃鍙兘涓鐐逛笉蹇?/p>
涓存椂琛ㄥ湪MySQL聽3.23.0鍜屾洿鏂扮増鎵嶆湁銆?/p>
鍙敤鏈鏂扮増鐨凪ySQL
2001騫翠竴鏈堜腑鏃紝MySQL聽3.23瀹e竷紼沖畾銆傞櫎浜嗗悗寰堝鏂板姛鑳藉錛屽畠涔熸瘮3.22緋誨垪鏇村揩鍜屾洿鍏蜂幾緙╂с?/p>
MySQL鐨勬洿鏂扮増涓嶆柇鎺ㄥ嚭銆傚鏋滀綘鎺у埗鐫浣犵殑MySQL鏈嶅姟鍣紝鏈濂芥槸灝濊瘯淇濇寔鐗堟湰鐩稿鏈鏂般傞櫎浜嗘湁鏈鏂板姛鑳藉拰閿欒淇錛屼綘甯稿父浼氱湅鍒拌緝鏂扮殑MySQL鍙戣鏈夋槑鏄劇殑鎬ц兘鎻愰珮銆?/p>
鍏朵粬璧勬簮
闄や簡闃呰MySQL鎵嬪唽錛屼綘涔熷彲浠ュ挩璇細
浣犵殑DBA錛氬鏋滀綘鍦ㄤ竴涓叡浜湇鍔″櫒涓婁嬌鐢∕ySQL錛屾煇涓漢琚寚瀹氫負鏁版嵁搴撶鐞嗗憳錛圖BA錛夛紝榪欐槸涓涓ソ鏈轟細銆傚鏋滀綘鐨凞BA闈炲父鐔熸倝MySQL錛屽畠鍙兘鍙互鍦ㄥ垎鏋愬拰浼樺寲浣犵殑琛ㄧ粨鏋勫拰鏌ヨ涓婂府浣犱竴涓嬨?i>聽
MySQL鐢ㄦ埛閭歡鍒楄〃錛氭湁闈炲父媧昏穬鐨勯偖浠跺垪琛紝鍦ㄥ叾涓璏ySQL鐢ㄦ埛緇忓父褰兼瀵繪眰甯姪銆傛柊鎵嬪拰鑰佹墜鎰挎剰鍒嗕韓鍏剁煡璇嗗茍褰兼甯姪瑙e喅鍏卞悓鐨勯棶棰樸傚疄闄呬笂錛屾湁浜汳ySQL寮鍙戝洟闃熸垚鍛樺緢濂藉湴鐩戣鐫閭歡鍒楄〃銆?i>聽聽
MySQL涔︾睄錛氫笉瑕佷笌MySQL鍙傝冩墜鍐屾販娣嗭紝Paul聽DuBois鍐欎簡涓鏈瀬濂界殑涔﹀悕涓恒奙ySQL銆嬬殑涔︼紙鏈変腑鏂囪瘧鏈級銆?