asp中使用mysql數(shù)據(jù)庫的注意實(shí)現(xiàn)
更新時(shí)間:2008年01月07日 14:55:44 作者:
asp中使用mysql數(shù)據(jù)庫的注意實(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語句,避免使用 rs.addnew,如果非的要用,應(yīng)先設(shè)置 conn.CursorLocation=3 否則,肯定報(bào)錯(cuò),而且我發(fā)現(xiàn),用insert 要比 addnew 快大約3倍。還有,如果用rs.addnew 當(dāng)你rs.update時(shí)候,是無法想在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秒!
查詢比較:access 查詢40w條數(shù)據(jù) 化了12秒,mysql化了14秒,稍微慢點(diǎn)。
總結(jié):總的來講,access的插入速度要比mysql快大約三倍。查詢數(shù)據(jù)時(shí)候,如果數(shù)據(jù)量比較小,access也要比mysql快大約2倍,但當(dāng)數(shù)據(jù)量很大時(shí),mysql的查詢速度變化不大,但access則下降的比較厲害。
當(dāng)然,mysql應(yīng)該要比access快的,我估計(jì)問題出在他的odbc驅(qū)動(dòng)上,而access的驅(qū)動(dòng)是用的ole,微軟對(duì)他作了很多優(yōu)化,所以,在這個(gè)測試中,mysql蒙冤受屈了!至于并發(fā)性能,我沒有測試,不過我想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ò)誤,而且亂碼沒商量。
連接方式:
'用系統(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語句,避免使用 rs.addnew,如果非的要用,應(yīng)先設(shè)置 conn.CursorLocation=3 否則,肯定報(bào)錯(cuò),而且我發(fā)現(xiàn),用insert 要比 addnew 快大約3倍。還有,如果用rs.addnew 當(dāng)你rs.update時(shí)候,是無法想在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秒!
查詢比較:access 查詢40w條數(shù)據(jù) 化了12秒,mysql化了14秒,稍微慢點(diǎn)。
總結(jié):總的來講,access的插入速度要比mysql快大約三倍。查詢數(shù)據(jù)時(shí)候,如果數(shù)據(jù)量比較小,access也要比mysql快大約2倍,但當(dāng)數(shù)據(jù)量很大時(shí),mysql的查詢速度變化不大,但access則下降的比較厲害。
當(dāng)然,mysql應(yīng)該要比access快的,我估計(jì)問題出在他的odbc驅(qū)動(dòng)上,而access的驅(qū)動(dòng)是用的ole,微軟對(duì)他作了很多優(yōu)化,所以,在這個(gè)測試中,mysql蒙冤受屈了!至于并發(fā)性能,我沒有測試,不過我想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ò)誤,而且亂碼沒商量。
連接方式:
'用系統(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)文章
asp正則html的圖片,對(duì)圖自動(dòng)縮放大小
下面的代碼是從html中正則取出圖片,然后批量替換等2008-03-03
asp下多個(gè)域名后綴同時(shí)查詢的域名查詢系統(tǒng)
asp下多個(gè)域名后綴同時(shí)查詢的域名查詢系統(tǒng)...2007-03-03
用javascript解決外部數(shù)據(jù)抓取中的亂碼問題
用javascript解決外部數(shù)據(jù)抓取中的亂碼問題...2007-04-04
ASP 連接Access數(shù)據(jù)庫的登陸系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了ASP 連接Access數(shù)據(jù)庫的登陸系統(tǒng),感興趣的小伙伴們可以參考一下2016-07-07
ASP替換、保存遠(yuǎn)程圖片實(shí)現(xiàn)代碼
這篇文章主要分享了ASP替換、保存遠(yuǎn)程圖片的函數(shù)代碼,需要的朋友可以參考下2015-09-09
asp DateDiff實(shí)現(xiàn)文字在特定時(shí)間后消失
在asp中實(shí)現(xiàn)文字在特定時(shí)間后消失,主要是使用DateDiff函數(shù)!2009-07-07
asp之GetArray提取鏈接地址,以$Array$分隔的代碼
asp之GetArray提取鏈接地址,以$Array$分隔的代碼...2007-09-09

