asp中使用mysql數(shù)據(jù)庫(kù)的注意實(shí)現(xiàn)
更新時(shí)間:2008年01月07日 14:55:44 作者:
asp中使用mysql數(shù)據(jù)庫(kù)的注意實(shí)現(xiàn)
環(huán)境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采用 myisam引擎。access 2003
不同的地方:
1、插入數(shù)據(jù)時(shí)候,mysql 應(yīng)盡量使用 insert into語(yǔ)句,避免使用 rs.addnew,如果非的要用,應(yīng)先設(shè)置 conn.CursorLocation=3 否則,肯定報(bào)錯(cuò),而且我發(fā)現(xiàn),用insert 要比 addnew 快大約3倍。還有,如果用rs.addnew 當(dāng)你rs.update時(shí)候,是無(wú)法想在access中立即獲得rs(“id”)的值的。
2、和access的比較:
同樣的表結(jié)構(gòu),用insert 插入20000條數(shù)據(jù)時(shí)候,mysql化了7.5秒,如果用rs.addnew則要24秒!而在access ,用insert 則化了化了19.8秒,rs.addnew卻只有化了2.8秒!
查詢(xún)比較:access 查詢(xún)40w條數(shù)據(jù) 化了12秒,mysql化了14秒,稍微慢點(diǎn)。
總結(jié):總的來(lái)講,access的插入速度要比mysql快大約三倍。查詢(xún)數(shù)據(jù)時(shí)候,如果數(shù)據(jù)量比較小,access也要比mysql快大約2倍,但當(dāng)數(shù)據(jù)量很大時(shí),mysql的查詢(xún)速度變化不大,但access則下降的比較厲害。
當(dāng)然,mysql應(yīng)該要比access快的,我估計(jì)問(wèn)題出在他的odbc驅(qū)動(dòng)上,而access的驅(qū)動(dòng)是用的ole,微軟對(duì)他作了很多優(yōu)化,所以,在這個(gè)測(cè)試中,mysql蒙冤受屈了!至于并發(fā)性能,我沒(méi)有測(cè)試,不過(guò)我想access應(yīng)該大大不如mysql吧。
如果要使用
rs.pagecount
rs.pagesize
rs.AbsolutePage
rs.recordcount
這樣的屬性,你必須先conn.CursorLocation=3
否則以上屬性統(tǒng)統(tǒng)不能使用。
還有為了防止亂碼和插入中文錯(cuò)誤,你必須在conn.open后,立即:conn.Execute ("SET NAMES 'gb2312'")
否則,肯定插入錯(cuò)誤,而且亂碼沒(méi)商量。
連接方式:
'用系統(tǒng)DNS連接:
strconnection="dsn=mysql; OPTION=16384;driver={mysql odbc 3.51 driver};server=127.0.0.1;uid=root;pwd=67918;database=test"
'直接用字符串連接:
'strconnection="Driver={mysql odbc 3.51 driver}; Server=localhost; Port=3306; Option=0; Socket=; Stmt=; Database=test; Uid=root; Pwd=67918;Option=16384"
set conn=server.createobject("adodb.connection")
conn.CursorLocation=3
conn.open strconnection
不同的地方:
1、插入數(shù)據(jù)時(shí)候,mysql 應(yīng)盡量使用 insert into語(yǔ)句,避免使用 rs.addnew,如果非的要用,應(yīng)先設(shè)置 conn.CursorLocation=3 否則,肯定報(bào)錯(cuò),而且我發(fā)現(xiàn),用insert 要比 addnew 快大約3倍。還有,如果用rs.addnew 當(dāng)你rs.update時(shí)候,是無(wú)法想在access中立即獲得rs(“id”)的值的。
2、和access的比較:
同樣的表結(jié)構(gòu),用insert 插入20000條數(shù)據(jù)時(shí)候,mysql化了7.5秒,如果用rs.addnew則要24秒!而在access ,用insert 則化了化了19.8秒,rs.addnew卻只有化了2.8秒!
查詢(xún)比較:access 查詢(xún)40w條數(shù)據(jù) 化了12秒,mysql化了14秒,稍微慢點(diǎn)。
總結(jié):總的來(lái)講,access的插入速度要比mysql快大約三倍。查詢(xún)數(shù)據(jù)時(shí)候,如果數(shù)據(jù)量比較小,access也要比mysql快大約2倍,但當(dāng)數(shù)據(jù)量很大時(shí),mysql的查詢(xún)速度變化不大,但access則下降的比較厲害。
當(dāng)然,mysql應(yīng)該要比access快的,我估計(jì)問(wèn)題出在他的odbc驅(qū)動(dòng)上,而access的驅(qū)動(dòng)是用的ole,微軟對(duì)他作了很多優(yōu)化,所以,在這個(gè)測(cè)試中,mysql蒙冤受屈了!至于并發(fā)性能,我沒(méi)有測(cè)試,不過(guò)我想access應(yīng)該大大不如mysql吧。
如果要使用
rs.pagecount
rs.pagesize
rs.AbsolutePage
rs.recordcount
這樣的屬性,你必須先conn.CursorLocation=3
否則以上屬性統(tǒng)統(tǒng)不能使用。
還有為了防止亂碼和插入中文錯(cuò)誤,你必須在conn.open后,立即:conn.Execute ("SET NAMES 'gb2312'")
否則,肯定插入錯(cuò)誤,而且亂碼沒(méi)商量。
連接方式:
'用系統(tǒng)DNS連接:
strconnection="dsn=mysql; OPTION=16384;driver={mysql odbc 3.51 driver};server=127.0.0.1;uid=root;pwd=67918;database=test"
'直接用字符串連接:
'strconnection="Driver={mysql odbc 3.51 driver}; Server=localhost; Port=3306; Option=0; Socket=; Stmt=; Database=test; Uid=root; Pwd=67918;Option=16384"
set conn=server.createobject("adodb.connection")
conn.CursorLocation=3
conn.open strconnection
相關(guān)文章
SQL查詢(xún)語(yǔ)句通配符與ACCESS模糊查詢(xún)like的解決方法
我今天在寫(xiě)個(gè)頁(yè)面的時(shí)候,也很郁悶,表中明明有記錄,但在ASP里就是搜索不到,原來(lái)是因?yàn)閍ccess與SQL的查詢(xún)語(yǔ)句通配符問(wèn)題不同所引起的。2011-02-02asp下將數(shù)據(jù)庫(kù)中的信息存儲(chǔ)至XML文件中
asp下將數(shù)據(jù)庫(kù)中的信息存儲(chǔ)至XML文件中...2007-04-04asp 數(shù)組 重復(fù)刪除函數(shù)(腳本之家增強(qiáng)版)
這篇文章是asp下刪除重復(fù)數(shù)組的函數(shù),已經(jīng)經(jīng)過(guò)測(cè)試。2010-05-05asp提示Server 對(duì)象 錯(cuò)誤 ASP 0178 : 80070005
今天幫客戶(hù)配置好服務(wù)器以后測(cè)試程序發(fā)現(xiàn)asp程序提示Server 對(duì)象 錯(cuò)誤 ASP 0178 : 80070005,經(jīng)測(cè)試是因?yàn)闄?quán)限問(wèn)題。2011-11-11ASP多條件查詢(xún)功能實(shí)現(xiàn)代碼(多關(guān)鍵詞查詢(xún))
今天在用asp增加一個(gè)多條件查詢(xún),標(biāo)題可以包括多個(gè)關(guān)鍵詞,這樣提高匹配,防止內(nèi)容重復(fù)等2014-05-0564位win7的IIS7下asp與access的連接問(wèn)題
運(yùn)行asp是提示Microsoft OLE DB Provider for ODBC Drivers (0x80004005)[Microsoft][ODBC Microsoft Access Driver] 找不到文件 '(未知的)'。2009-12-12ASP讀取XML實(shí)例 優(yōu)酷專(zhuān)輯采集程序 雷鋒版
用asp獲取指定專(zhuān)題的xml文件,然后讀取xml文件的列表內(nèi)容批量讀取。2009-12-12