asp中使用mysql資料庫的注意實現

來源:互聯網
上載者:User

環境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表採用 myisam引擎。access 2003

不同的地方:
1、插入資料時候,mysql 應盡量使用 insert into語句,避免使用 rs.addnew,如果非的要用,應先設定 conn.CursorLocation=3 否則,肯定報錯,而且我發現,用insert 要比 addnew 快大約3倍。還有,如果用rs.addnew 當你rs.update時候,是無法想在access中立即獲得rs(“id”)的值的。
2、和access的比較:
同樣的表結構,用insert 插入20000條資料時候,mysql化了7.5秒,如果用rs.addnew則要24秒!而在access ,用insert 則化了化了19.8秒,rs.addnew卻只有化了2.8秒!
查詢比較:access 查詢40w條資料 化了12秒,mysql化了14秒,稍微慢點。

總結:總的來講,access的插入速度要比mysql快大約三倍。查詢資料時候,如果資料量比較小,access也要比mysql快大約2倍,但當資料量很大時,mysql的查詢速度變化不大,但access則下降的比較厲害。
當然,mysql應該要比access快的,我估計問題出在他的odbc驅動上,而access的驅動是用的ole,微軟對他作了很多最佳化,所以,在這個測試中,mysql蒙冤受屈了!至於並發效能,我沒有測試,不過我想access應該大大不如mysql吧。

如果要使用
rs.pagecount
rs.pagesize
rs.AbsolutePage
rs.recordcount
這樣的屬性,你必須先conn.CursorLocation=3
否則以上屬性統統不能使用。
還有為了防止亂碼和插入中文錯誤,你必須在conn.open後,立即:conn.Execute ("SET NAMES 'gb2312'")
否則,肯定插入錯誤,而且亂碼沒商量。

串連方式:

'用系統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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.