在資料庫應用開發中,效能與成本往往是一對難以調和的矛盾。以笔者開發股市行情查詢與交易系統為例,系統需在單台PC伺服器(Windows NT、PII 350 CPU、128MB 記憶體、SCSI 硬碟)上,同時支援超過 1000 支股票每分鐘更新一次的即時行情寫入,並響應大量並發使用者的查詢請求。初期採用 MS SQL Server 6.5 搭配 Visual C++ 6.0 與 ODBC 接口,經過大量調優仍無法滿足需求;改用 SQL Server 專屬的 DB-Library 接口繞過 ODBC 解釋層後,每秒可更新 30 次行情、支援 20-30 個並發查詢,勉強達標。但資料庫伺服器仍是系統瓶頸,若升級至 UNIX + 大型資料庫平台,成本將高出數倍。如何在微機平台上構建大容量、高效率、易維護、高性價比的資料庫系統?
調研國內微機平台資料庫應用,發現網易分散式郵件系統採用 FreeBSD + MySQL 架構,表現優異。深入研究 MySQL 文檔後發現:MySQL 是 GNU 開源軟體中極優秀的關係型資料庫,完全符合 SQL92 Entry Level 與 ODBC Level 0-2 規範,在 POSIX 相容作業系統上實現了高效管理。官方提供的 Benchmark 數據顯示,MySQL 在讀寫效能上遠超同級商業資料庫(見下表,測試環境同為 NT 4.0):
| 資料庫 | 耗時 |
|---|---|
| MySQL | 367 |
| MySQL_odbc | 464 |
| db2_odbc | 1206 |
| informix_odbc | 121126 |
| ms-sql_odbc | 1634 |
| Oracle_odbc | 20800 |
| solid_odbc | 877 |
| Sybase_odbc | 17614 |
| 資料庫 | 耗時 |
|---|---|
| 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 在 Windows NT 上的原生支援與卓越效能,使其成為構建高性能應用的理想候選。笔者將原系統改用 MySQL C API 介面重寫,長期運行證明其高效穩定,完全滿足大容量、高併發、低成本的建設目標。以下將分享 MySQL 安裝、運行與開發的實戰心得。
[1] [2] [3] [4] [5] 下一頁