結合使用 MySQL 與 SQL Server

MySQL 與 SQL Server 結合使用時,負責管理這兩個平臺的 DBA 應考慮採用哪些最佳實踐技巧?雖然不夠詳盡,但以下建議可幫助確保 DBA 儘可能高效地開展工作:
 如果選擇了正確的產品,數據庫工具將大幅提升工作效率。除了 MySQL Workbench 外,許多第三方數據庫工具現在都支持同時使用 MySQL 和 SQL Server,因此 DBA 應研究這些工具是否能夠創造切實的收益。例如,Quest TOAD 能夠節省時間,因此許多 DBA 選擇在 SQL Server 中使用它。Quest 提供的 TOAD for MySQL 產品可以讓習慣於 TOAD 界面的 DBA 輕鬆上手 MySQL。Embarcadero 的 DBArtisan 產品也是如此,它支持 SQL Server 和 MySQL,可用於管理這兩個平臺。當然,DBA 還可以使用數據庫供應商提供的工具(例如 SQL Server Management Studio 產品,當然,Oracle 提供了 MySQL Workbench)。
 習慣於讓 SQL Server 自動處理任務的 SQL Server DBA 應採用同樣的互補性 MySQL 特性,從而避免額外的管理工作。這包括讓 InnoDB 表空間文件自動增長(這對應於啓用 SQL Server 數據和日誌文件的自動增長屬性)、設置 MySQL 二進制日誌以進行時間點恢復(這對應於在 SQL Server 中使用完全恢復模式),等等。
 與 SQL Server 中一樣,分配大量內存可幫助 MySQL 提升性能,因此應根據所採用的底層引擎,確保提供足夠的 RAM 來支持從內存中訪問數據(而不是從磁盤中讀取數據),因爲 MySQL 爲大多數企業應用提供的默認值都太低了。與 SQL Server 中一樣,應意識到始終從 RAM 中讀取數據並不代表實際的 SQL 代碼效率很高。不必要的邏輯 I/O 也會像物理 I/O 那樣影響性能。
 MySQL 中的簇索引與 SQL Server 中的簇索引略有不同,具體表現在:
o 簇索引僅適用於 InnoDB 存儲引擎,因此建議使用 Innodb 處理所有轉換後的表。
o 簇索引必須基於表的主鍵構建。
o 如果 InnoDB 表中未明確定義簇索引,MySQL 將自動基於主鍵、某個唯一鍵(如果沒有主鍵)或某個內部行標識符(如果表中沒有唯一性約束)創建一個簇索引。
 與 SQL Server 不同,MySQL 中的分區功能不需要創建分區函數或分區方案。而是在表的創建 DDL 中定義分區和分區類型(範圍、散列、鍵、列表、組合)。

 與 SQL Server 2005 及更高版本不同,MySQL 自動啓用“快照讀取”(這樣,讀取程序不會阻塞寫入程序,反之亦然),無需設置數據庫選項或在 SQL 語句前通過特殊的命令來確保快照隔離讀取。

 由於效率低下的 SQL 會對 MySQL 數據庫造成嚴重的負面影響,所以 MySQL DBA 應從一開始就啓用慢日誌,以便捕獲調優效果欠佳的 SQL 代碼並定期查看日誌結果。此外,用戶還可以查看 MySQL Workbench 性能視圖,或者通過利用 MySQL Performance Schema 的 MySQL Enterprise Monitor 獲取更詳細的信息。在 MySQL 中,用戶可以設置慢日誌或通用日誌對 SQL Server 動態管理視圖或 SQL Profiler 工具中的結果進行鏡像,以便找到有問題的 SQL 代碼。可以通過 SQL 查詢 MySQL 提供的 SQL 性能表,獲取效率低下的代碼指標。根據其他性能監視建議,還可以使用 MySQL SHOW GLOBAL STATUS 和 SHOW INNODB STATUS 命令分析原始 MySQL 性能指標。包含 Query Analyzer 的 MySQL Enterprise Monitor 提供了一些更高級的監視和建議功能,DBA 在大多數部署了 MySQL 的生產環境中都應使用該工具。
 MySQL DBA 應使用 SQL Server 錯誤/通知日誌檢查計劃來檢查 MySQL 錯誤日誌,從而避免任何可能的異常行爲。
 習慣使用 SQL Server Agent 調度和執行 SQL/T-SQL 作業的 DBA 可以利用 MySQL 中的事件調度器完成同樣的任務。
 其生產應用需要持續監視的 DBA 應評估 MySQL 企業版,這是因爲這個經過認證的軟件可提供高可靠性,而內置的軟件升級和監視/諮詢工具則有助於主動保證正常運行並協助診斷和解決性能問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章