使用C串連Mysql

來源:互聯網
上載者:User

在資料庫的應用開發中,常常會遇到效能和代價的之間矛盾。以作者在開發股市行情查詢和交易系統中遇到的問題為例,要在即時記錄1000多隻股票每分鐘更新一次的行情資料的同時,響應大量並發使用者的資料查詢請求。考慮到性價比和易維護性,系統又要求在基於PC伺服器,Windows NT平台的軟硬體環境下實現。開始,我們採用了MS SQL Server 6.5 作為資料庫系統,用Visual C++ 6.0開發了訪問資料庫的前端,應用ODBC資料介面,在進行了大量的資料庫配置和程式最佳化後,發現仍不能滿足效能要求。後採用SQL Server的DB-Library介面,繞過了ODBC解釋層,可以每秒更新行情資料30次,同時支援20-30個左右的並發使用者進行行情查詢,基本滿足要求(單台PC伺服器,單PII350 CPU,記憶體128M,SCSI硬碟)。有沒有可能進一步提高系統的效能和負載能力呢?經過分析,資料庫伺服器是系統的瓶頸。當然,可以採用UNIX伺服器+大型資料庫的系統平台,但其開發、運行、維護的費用比微機+Windows NT平台的費用高出數倍。我們在其它一些系統的開發中,也經常遇到這樣的矛盾。如何在微機平台上建立大容量、高效率、易維護、高性價比的資料庫系統呢?

考察國內基於微機平台的資料庫應用系統,典型的如網易的分布式郵件系統,採用了FreeBSD+MySQL的平台,其容量、負載能力和響應速度都很優秀。作者查閱了MySQL的相關文檔,發現MySQL是GNU軟體(即OpenSource自由軟體)中非常優秀的資料庫系統,它完全符合SQL92 (Entry level)和 ODBC( level 0-2)規範,在符合POSIX規範的作業系統上實現了非常高效的關係型資料庫管理系統。根據MySQL提供的文檔,它的資料操作堪稱所有資料庫中最高效的,Benchmark如下表:

Reading 2000000 rows by index
Database Seconds
mysql 367
mysql_odbc 464
db2_odbc 1206
informix_odbc 121126
ms-sql_odbc 1634
oracle_odbc 20800
solid_odbc 877
sybase_odbc 17614
Inserting 350768 rows
Database Seconds
mysql 381
mysql_odbc 619
db2_odbc 3460
informix_odbc 2692
ms-sql_odbc 4012
oracle_odbc 11291
solid_odbc 1801
sybase_odbc 4802

從MySQL的Benchmark中可以看到,MySQL的效能非常出眾(當然,測試的MySQL系統可能作了最佳化,被測資料可能是針對MySQL選擇的),而且MySQL提供了對Windows NT的支援。Windows NT+MySQL能否成為構建高效能資料庫應用的理想選擇呢?作者用MySQL的資料介面改寫了程式,經過一段時間的運行,證明MySQL確實是高效而穩定的資料庫,非常適合構建大容量、高效率、易維護、高性價比的資料庫應用系統。現將MySQL的安裝、運行、開發的心得與大家共用。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.