數據庫采購指南之除了功能還是功能!
原創【51CTO獨家譯文】我們在***個部分《數據庫采購指南之細說數據庫的類型和功能》中首先介紹了主要的數據庫類型,以及選購數據庫管理系統時要考慮的一些重要功能。這些功能包括存儲機制、數據完整性和支持的語言,范圍涵蓋SQL版本以及PL/TCL、PL/Perl和PL/python等編程語言。
本文將介紹數據庫管理系統其他額外的重要功能,你在作出決策之前***考慮到這些功能。
支持的數據類型
在過去的幾年,支持大對象的功能變得越來越受歡迎。常見的大對象包括:用戶定義的數據類型、名為地理信息系統(GIS)的地理特征、圖像和極大的或不受限制的文本字段。除了能夠存儲這類龐大而復雜的數據類型外,數據庫還要提供查找和檢索它們的辦法。一種辦法稱為基于內容的圖像檢索(CBIR),這一類技術用于使用一個或多個實例圖像,從龐大圖像庫檢索信息。另一種技術使用索引關鍵字搜索。
性能監控和調優功能
你的數據模式越龐大、越復雜,性能監控和調優功能就變得越重要。要獲得***的查詢性能,就必須支持單列、多列和獨特的主鍵索引。為了從數據庫獲得***性能,分析工具就必不可少。我最近寫了幾篇文章來介紹MySQL分析工具:《用MySQL的分析工具來找出慢速查詢》(http://www.databasejournal.com/features/mysql/article.php/3921876/Identify-Slow-Queries-using-MySQLs-Analysis-Tools.htm),以及《用MySQL的分析工具來改進查詢性能》(http://www.databasejournal.com/features/mysql/article.php/3925251/Using-MySQLs-Analysis-Tools-to-Improve-Query-Performance.htm)。
數據庫安全功能
媒體大肆報道的一連串數據庫泄密事件使得安全成為數據庫領域關注的首要問題。下列功能將幫助你確保數據庫系統很安全,從而遠離未授權訪問:加密、支持復制、定義用戶角色和用戶組的功能以及細粒度的權限授予等。你還得考慮數據庫實際上放在哪里。要是有人隨便進來,就能拿走你的數據,花巨資購買安全軟件又有啥用?! 如果牽涉大筆的錢,內賊作案這種威脅比你想象的要常見得多!
不是所有數據庫都可以在每個平臺上運行。甲骨文和DB2等一些比較大牌的廠商,甚至MySQL等一些比較小的廠商都銷售支持多種操作系統的數據庫。其他廠商只能支持某種特定的操作系統(如Windows或Linux)。評估跨平臺產品時,要密切注意你在多個數據庫管理系統之間切換時,每個軟件版本在運行時怎么樣,包括工作流、導航操作和外觀感覺等方面的變化,因為這會影響每個新員工的適應時間,還會影響現有的團隊成員學用每種新數據庫管理系統的難易程度。
協作
如今在應用程序的整個生命周期中,數據庫開發員和管理員的角色存在諸多重疊并不罕見。比如在我公司,程序員常常用Java動態創建SQL語句,直接從應用程序中針對數據庫來執行。這僅僅是表明協作功能大有助益的一個例子。 數據庫工具還有助于管理團隊、質量保證團隊和合作伙伴之間的協作和溝通,從而有助于營造聯系更緊密的環境。一些常見的用途包括:能夠找出問題并傳達下去,讓管理、開發和質量保證等團隊盡快了解情況。報告生成功能也非常有助于與管理團隊及其他團隊的成員進行溝通。能夠在開發人員與生產人員之間分發日常的數據模式變化是協作工具的另一個用途。
一些數據庫管理系統甚至允許你只要點擊幾下鼠標,就可以把項目放在中心版本控制系統之下。我發現,你的團隊越龐大,平臺環境越復雜,版本控制就變得越重要。我的部門有兩個數據敏感程度不一的并行網絡,每個有各自的開發、質量保證和生產支持環境,使得版本控制必不可少。***但并非最不重要的是,評估數據庫工具時,考慮每個工具會如何幫助你與公司內外的有關方進行協作和溝通很重要。
數據可視化
說到協作,數據可視化功能有助于主開發員/管理員和可能需要信息的其他人。人們喜歡怎樣分析信息可能完全因人而宜。一些人青睞圖形化方式,一些人需要原始數據流,而還有一些人得益于這兩種方法。弄清楚你自己團隊成員的偏好,然后選擇相應的工具。僅舉一例,過去幾年出現了新興的SQL調優技術,包括可視化SQL調優(VST)。VST這種方法以圖形化方式呈現SQL語言,以便快速了解查詢的主要部分、查詢流程及***執行路徑。這種類型的數據圖形化呈現方法可以改進你的SQL調優,并充分利用團隊員分析數據的不同方法。
性能和可用性
數據庫管理員和開發員都不斷受到壓力,需要提高數據庫和應用程序的性能。這不無道理;因為用戶越快找到所需的數據,就能處理越多的事務,因而工作效率就越高。你應該考慮使用能夠防止、查找和解決性能問題的工具,以便這些問題出現。負責應對生產環境問題的數據庫管理員和開發員依賴24x7的監控和警報機制,那樣他們就能及早發現問題,并迅速解決問題,以免系統停運。大家很清楚,一旦出現危機,能夠迅速找出并解決問題的重要性再怎么強調都不過分!想一想:在這個緊要關頭,只需看一眼性能儀表板與不得不翻閱幾十個屏幕,這之間的差別有多大?!
說到備份,開源數據庫也許無法完全滿足你的要求。有些數據庫對于數據庫數據和模式只能提供簡單的文本轉儲。其他解決方案還提供了進行數據庫熱備份的方法,這種備份是指不用關閉數據庫,就能進行備份。Vertias NetBackup或Tivoli TSM等許多商用備份工具還有代理軟件,提供了商用數據庫的在線備份功能。備份功能還包括數據庫崩潰和電源突然出現故障后,簡單的數據庫恢復。PostgreSQL等一些數據庫管理系統使用一種名為預寫式日志(Write Ahead Logging)的方法,提供數據庫一致性檢查功能;MySQL只針對InnoDB表類型提供數據庫一致性檢查功能。
數據遷移
許多數據庫管理系統解決方案含有數據庫遷移實用工具,有助于在其他流行的商用數據庫之間來回遷移數據。市面上還有第三方的實用工具,它們有的是開源工具,有的是商用工具。顯然,你的數據模式越復雜,轉換起來難度就越大;其中一些工具可能無法理想地全面遷移各種數據,需要長時間的手動操作。
結論
我知道我在這里已介紹了許多功能。我記得有好多回,別人請我修復一開始沒有正確評估數據需求造成的破壞。21世紀的Web 2.0世界最普遍性的問題之一就是溝通。因而,要特別關注讓你可以跨平臺和數據庫管理系統共享數據的選擇。這方面的有用功能包括能夠用不同的格式來導入和導出數據,比如XML、JSON及其他與網絡/平臺無關的標準。
【編輯推薦】