1.2.2 MySQL的主要功能


 

本節描述了MySQL數據庫軟件的一些重要特征。在大多數方面,該路線圖適用於所有版本的MySQL。有關特定於系列的MySQL中引入的功能的信息,請參見相應手冊的 “ 簡而言之 ”一節:

內部和便攜性

  • 用C和C ++編寫。

  • 經過廣泛的不同編譯器測試。

  • 可在許多不同平台上使用。參見 https://www.mysql.com/support/supportedplatforms/database.html

  • 為了便於移植,請使用CMake進行配置

  • 已通過Purify(商用內存泄漏檢測器)以及GPL工具Valgrind(http://developer.kde.org/~sewardj/)進行了測試。

  • 使用具有獨立模塊的多層服務器設計。

  • 設計為使用內核線程完全多線程,可以輕松使用多個CPU(如果有)。

  • 提供事務性和非事務性存儲引擎。

  • 使用MyISAM索引壓縮非常快的B樹磁盤表()。

  • 旨在使其相對容易地添加其他存儲引擎。如果要為內部數據庫提供SQL接口,這將很有用。

  • 使用非常快速的基於線程的內存分配系統。

  • 使用優化的嵌套循環聯接執行非常快速的聯接。

  • 實現內存中的哈希表,用作臨時表。

  • 使用應該盡可能快的高度優化的類庫來實現SQL函數。通常,查詢初始化后根本沒有內存分配。

  • 提供服務器作為在客戶端/服務器網絡環境中使用的單獨程序,以及作為可嵌入(鏈接)到獨立應用程序中的庫。此類應用程序可以隔離使用,也可以在沒有網絡可用的環境中使用。

資料類型

陳述和功能

  • 查詢SELECT列表和 WHERE子句中的 完全運算符和函數支持 例如:

    mysql> SELECT CONCAT(first_name, ' ', last_name)  -> FROM citizen  -> WHERE income/dependents > 10000 AND age > 30;
  • 完全支持SQL GROUP BY和 ORDER BY子句。支持基函數(COUNT(), AVG(), STD(), SUM(), MAX(), MIN(),和 GROUP_CONCAT())。

  • 支持LEFT OUTER JOIN和 支持RIGHT OUTER JOIN標准SQL和ODBC語法。

  • 支持標准SQL要求的表和列別名。

  • 支持DELETE, INSERT, REPLACE,和 UPDATE以返回更改(受影響)的行數,或返回通過連接到服務器時設置標志,而不是匹配的行的數量。

  • 支持特定於MySQL的SHOW 語句,該語句檢索有關數據庫,存儲引擎,表和索引的信息。支持 INFORMATION_SCHEMA數據庫,根據標准SQL實現。

  • 一個EXPLAIN語句來顯示優化器如何解決一個查詢。

  • 函數名稱與表或列名稱的獨立性。例如,ABS是一個有效的列名。唯一的限制是對於函數調用,函數名稱和其后的“ (之間不允許有空格 請參見 第9.3節“關鍵字和保留字”

  • 您可以在同一條語句中引用來自不同數據庫的表。

安全

  • 特權和密碼系統,非常靈活和安全,並且可以進行基於主機的驗證。

  • 連接到服務器時,通過對所有密碼通信進行加密來實現密碼安全。

可擴展性和限制

  • 支持大型數據庫。我們將MySQL Server與包含5000萬條記錄的數據庫一起使用。我們也知道使用MySQL Server的用戶有200,000個表和大約5,000,000,000行。

  • 每個表最多支持64個索引。每個索引可以包含1到16列或部分列。InnoDB的最大索引寬度為767字節或3072字節。請參見第15.22節“ InnoDB限制”MyISAM的最大索引寬度為 1000字節。請參見 第16.2節“ MyISAM存儲引擎”索引可使用的柱的前綴CHAR, VARCHAR, BLOB,或 TEXT列類型。

連接性

  • 客戶端可以使用多種協議連接到MySQL Server:

    • 客戶端可以在任何平台上使用TCP / IP套接字進行連接。

    • 在Windows系統上,如果服務器在named_pipe啟用系統變量的情況下啟動,則客戶端可以使用命名管道進行連接 如果在shared_memory啟用系統變量的情況下啟動,Windows服務器也支持共享內存連接 客戶端可以使用該--protocol=memory選項通過共享內存進行連接 

    • 在Unix系統上,客戶端可以使用Unix域套接字文件進行連接。

  • MySQL客戶端程序可以用多種語言編寫。用C編寫的客戶端庫可用於用C或C ++編寫的客戶端,或提供C綁定的任何語言的客戶端。

  • 提供了C,C ++,Eiffel,Java,Perl,PHP,Python,Ruby和Tcl的API,使MySQL客戶端可以用多種語言編寫。請參見第28章,連接器和API

  • 連接器/ ODBC(MyODBC)接口為使用ODBC(開放數據庫連接)連接的客戶端程序提供MySQL支持。例如,您可以使用MS Access連接到MySQL服務器。客戶端可以在Windows或Unix上運行。連接器/ ODBC源可用。支持所有ODBC 2.5功能,以及許多其他功能。參見《 MySQL Connector / ODBC開發人員指南》

  • Connector / J接口為使用JDBC連接的Java客戶端程序提供MySQL支持。客戶端可以在Windows或Unix上運行。連接器/ J源可用。參見《 MySQL Connector / J 5.1開發人員指南》

  • MySQL Connector / NET使開發人員可以輕松創建需要與MySQL安全,高性能數據連接的.NET應用程序。它實現了必需的ADO.NET接口,並集成到ADO.NET感知工具中。開發人員可以使用他們選擇的.NET語言來構建應用程序。MySQL Connector / NET是用100%純C#編寫的完全托管的ADO.NET驅動程序。參見《 MySQL Connector / NET開發人員指南》

本土化

  • 服務器可以用多種語言向客戶端提供錯誤消息。請參見第10.12節“設置錯誤消息語言”

  • 幾個不同的字符集,包括全面支持 latin1(CP1252) ,german, big5ujis一些Unicode字符集等。例如,在表名和列名中允許使用斯堪的納維亞字符“ å, “ ä和 “ ö

  • 所有數據都保存在所選字符集中。

  • 排序和比較是根據默認字符集和排序規則完成的。可以在啟動MySQL服務器時更改此設置(請參見 第10.3.2節“服務器字符集和排序規則”)。要查看非常高級的排序示例,請查看Czech排序代碼。MySQL Server支持許多不同的字符集,可以在編譯時和運行時指定它們。

  • 服務器時區可以動態更改,並且各個客戶端可以指定自己的時區。請參見 第5.1.14節“ MySQL服務器時區支持”

客戶和工具

  • MySQL包括幾個客戶端程序和實用程序。這些包括命令行程序(例如 mysqldump和 mysqladmin)以及圖形程序(例如 MySQL Workbench)

  • MySQL Server內置了對SQL語句的支持,以檢查,優化和修復表。這些語句可通過 mysqlcheck客戶端從命令行使用MySQL還包括 myisamchk,這是一個非常快的命令行實用程序,用於在MyISAM 表上執行這些操作請參閱第4章,MySQL程序

  • 可以使用--help 或-?選項調用MySQL程序以獲得在線幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM