亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 55682 | 回復(fù): 219
打印 上一主題 下一主題

【申請加精】MySQL 5.1參考手冊  關(guān)閉 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-04-15 11:28 |只看該作者 |倒序瀏覽
目錄

1.1. 關(guān)于本手冊
1.2. 本手冊采用的慣例
1.3. MySQL AB概述
1.4. MySQL數(shù)據(jù)庫管理系統(tǒng)概述
1.4.1. MySQL的歷史
1.4.2. MySQL的的主要特性
1.4.3. MySQL穩(wěn)定性
1.4.4. MySQL表最大能達(dá)到多少
1.4.5. 2000年兼容性
1.5. MaxDB數(shù)據(jù)庫管理系統(tǒng)概述
1.5.1. 什么是MaxDB?
1.5.2. MaxDB的歷史
1.5.3. MaxDB的特性
1.5.4. 許可和支持
1.5.5. MaxDB和MySQL之間的特性差異
1.5.6. MaxDB和MySQL之間的協(xié)同性
1.5.7. 與MaxDB有關(guān)的鏈接
1.6. MySQL發(fā)展大事記
1.6.1. MySQL 5.1的新特性
1.7. MySQL信息源
1.7.1. MySQL郵件列表
1.7.2. IRC(在線聊天系統(tǒng))上的MySQL社區(qū)支持
1.7.3. MySQL論壇上的MySQL社區(qū)支持
1.8. MySQL標(biāo)準(zhǔn)的兼容性
1.8.1. MySQL遵從的標(biāo)準(zhǔn)是什么
1.8.2. 選擇SQL模式
1.8.3. 在ANSI模式下運(yùn)行MySQL
1.8.4. MySQL對標(biāo)準(zhǔn)SQL的擴(kuò)展
1.8.5. MySQL與標(biāo)準(zhǔn)SQL的差別
1.8.6. MySQL處理約束的方式

MySQL®軟件提供了十分快速的多線程、多用戶、牢靠的SQL(結(jié)構(gòu)化查詢語言)數(shù)據(jù)庫服務(wù)器。 MySQL服務(wù)器定位于任務(wù)關(guān)鍵型、重負(fù)荷生產(chǎn)系統(tǒng),并能嵌入在大量部署的軟件中。MySQL是MySQL AB的注冊商標(biāo)。

MySQL軟件采用雙許可方式。用戶可根據(jù)GNU通用公共許可(http://www.fsf.org/licenses/)條款,將MySQL軟件作為開放源碼產(chǎn)品使用,或從MySQL AB公司購買標(biāo)準(zhǔn)的商業(yè)許可證。關(guān)于我方許可策略的更多信息,請參見http://www.mysql.com/company/legal/licensing/。

在下面的清單中,介紹了本手冊感興趣的一些特殊部分。
關(guān)于MySQL數(shù)據(jù)庫服務(wù)器的討論,請參見1.4.2 “MySQL的的主要特性”。

關(guān)于安裝說明,請參見第2章:安裝MySQL。

關(guān)于將MySQL數(shù)據(jù)庫軟件移植到新體系結(jié)構(gòu)或操作系統(tǒng)方面的技巧,請參見附錄E:移植到其他系統(tǒng)。

關(guān)于從5.0版向上升級的更多信息,請參見2.10.1節(jié),“從5.0版升級”。

關(guān)于MySQL數(shù)據(jù)庫服務(wù)器的教程說明,請參見第3章:教程。

關(guān)于SQL示例和標(biāo)準(zhǔn)程序信息,請參見標(biāo)準(zhǔn)程序目錄(在本發(fā)布版中,為sql-bench)。

關(guān)于新特性和缺陷更正的歷史信息,請參見附錄D:MySQL變更史。

關(guān)于當(dāng)前已知缺陷和錯誤特性的列表,請參見A.8 “MySQL中的已知事宜”。

關(guān)于未來計劃,請參見1.6 “MySQL發(fā)展大事記”。

關(guān)于本項目所有貢獻(xiàn)人的清單,請參見 附錄C:感謝。

重要說明:

請將錯誤報告(通常稱為缺陷)以及問題和評論發(fā)送到http://bugs.mysql.com。請參見1.7.1.3 “如何通報缺陷和問題”。
如果在MySQL服務(wù)器中發(fā)現(xiàn)敏感的安全缺陷,請使用電子郵件立刻通知我們:security@mysql.com。

[ 本帖最后由 luren04 于 2008-4-16 10:36 編輯 ]

MySQL 5.1 官方簡體中文版參考手冊.part1.rar

1.39 MB, 下載次數(shù): 1551

MySQL 5.1 官方簡體中文版參考手冊.part2.rar

1.39 MB, 下載次數(shù): 2886

MySQL 5.1 官方簡體中文版參考手冊.part3.rar

1.39 MB, 下載次數(shù): 2970

論壇徽章:
0
2 [報告]
發(fā)表于 2008-04-15 11:29 |只看該作者

1.1. 關(guān)于本手冊

這是關(guān)于5.1版至5.1.2-alpha版MySQL數(shù)據(jù)庫系統(tǒng)的參考手冊。該手冊不適用于舊版本MySQL軟件,這是因為在MySQL 5.1和以前的版本存在很多功能性差異和其他差異。如果正在使用MySQL軟件的較舊版本,請參閱MySQL 5.0參考手冊,該手冊涵蓋了MySQL 5.0,或參閱MySQL 4.1參考手冊,該手冊涵蓋了MySQL 3.22、3.23、4.0和4.1系列。在手冊的文本中,通過引用發(fā)布版本號(5.1.x),注明了MySQL 5.1的二級版本。

由于本手冊是作為參考手冊而編制的,在本手冊中未提供關(guān)于SQL或關(guān)聯(lián)數(shù)據(jù)庫概念的一般說明。在本手冊中,也不包含如何使用操作系統(tǒng)或命令行解釋器方面的信息。

MySQL數(shù)據(jù)庫軟件始終在發(fā)展,參考手冊也會相應(yīng)地頻繁更新。本手冊的最新版本以在線方式提供,請使用http://dev.mysql.com/doc/上的搜索表單。也提供多重其他格式,包括HTML、PDF、和Windows CHM版本。

主要文檔是DocBook XML文件的集合。對于HTML版本和其他格式,它們是使用DocBook XSL stylesheets自動生成的。

如果你有任何關(guān)于本手冊應(yīng)增加內(nèi)容或更正內(nèi)容方面的建議,請將其發(fā)送給文檔編制團(tuán)隊:docs@mysql.com

本手冊最初是由David Axmark和Michael “Monty” Widenius編制的。由MySQL文檔編制團(tuán)隊負(fù)責(zé)維護(hù),團(tuán)隊成員包括Paul DuBois、Stefan Hinz、Mike Hillyer和Jon Stephens。關(guān)于中多其他貢獻(xiàn)人,請參見附錄C:感謝。
本手冊的版權(quán)歸瑞典公司MySQL AB所有。MySQL®和MySQL徽標(biāo)均是MySQL AB的注冊商標(biāo)。本手冊中引用的其他商標(biāo)和注冊商標(biāo)是相應(yīng)所有人的財產(chǎn),在本手冊中僅將其用于辨識目的。

PS:pdf版的已經(jīng)上傳,本帖不再更新。

[ 本帖最后由 luren04 于 2008-4-16 10:38 編輯 ]

MySQL 5.1 官方簡體中文版參考手冊.part4.rar

1.39 MB, 下載次數(shù): 3253

MySQL 5.1 官方簡體中文版參考手冊.part5.rar

788.1 KB, 下載次數(shù): 1159

論壇徽章:
0
3 [報告]
發(fā)表于 2008-04-15 11:29 |只看該作者

1.2. 本手冊采用的慣例

本手冊采用了特定的印刷慣例:

·         這類風(fēng)格的文本用于SQL語句,數(shù)據(jù)庫、表和列名稱,C和Perl代碼,以及環(huán)境變量。例如: 要想重新加載授權(quán)表,請使用FLUSH PRIVILEGES語句。

這類風(fēng)格的文本用于指明鍵入的數(shù)如信息。

·         這類風(fēng)格的文本用于指明可執(zhí)行程序和腳本的名稱,例如mysql(MySQL命令行客戶端程序)和mysqld(MySQL服務(wù)器執(zhí)行程序)。

·         這類風(fēng)格的文本用于變量輸入,應(yīng)使用你選擇的值替換它。

·         文件名和目錄名采取下述方式: “全程my.cnf位于目錄/etc下”。

·         字符序列采取下述方式: “要想使用通配符,請使用字符%”。

·         這類風(fēng)格的文本用于強(qiáng)調(diào)。

·         這類風(fēng)格的文本用于表頭,并用于傳遞強(qiáng)調(diào)信息。

當(dāng)出現(xiàn)準(zhǔn)備在特定程序中執(zhí)行的命令時,該程序?qū)⒂晌挥诿钋暗奶崾痉该。例如,shell>指明命令將從注冊外殼程序中執(zhí)行,mysql>指明命令將從mysql客戶端程序中執(zhí)行:

shell> type a shell command here(在此輸入shell命令)mysql> type a mysql statement here(在此輸入mysql語句)“shell”是命令解釋程序。在Unix平臺上,它通常是程序,如sh、csh或bash。在Windows平臺下,等效程序為command.com或cmd.exe,通常運(yùn)行在控制臺窗口中。

輸入示例中顯示的命令或語句時,不要輸入示例中給出的提示符。

數(shù)據(jù)庫、表和;列名必須代入語句中。為了指明該代入是必要的,在本手冊中使用了db_name、tbl_name和col_name。例如,你將見到如下所示的語句:

mysql> SELECT col_name FROM db_name.tbl_name;這意味著,如果你輸入了類似的語句,應(yīng)提供你的數(shù)據(jù)庫、表和列名,如下例所示:

mysql> SELECT author_name FROM biblio_db.author_list;SQL關(guān)鍵字不區(qū)分大小寫,因此即可為大寫也可為小寫。在本手冊中采用大寫。

在語法介紹中,方括號(“[”和“]”)用于指明可選字或子句。例如,在下面的語句中,IF EXISTS是可選的:

DROP TABLE [IF EXISTS] tbl_name當(dāng)某一語法成分由多個可選項組成時,可選項應(yīng)用豎線“|”分開。當(dāng)可能選擇一組選擇中的某一成員時,可選項將列在方括號(“[”和“]”)中。

TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)當(dāng)必須選擇一組選擇中的某一成員時,可選項將列在大括號(“{”和“}”)中。

{DESCRIBE | DESC} tbl_name [col_name | wild]省略號(…)表明省略了語句的某一選擇,通常是為了提供復(fù)雜語法的簡短表述。例如,INSERT ... SELECT是后跟SLECT語句的INSERT語句的簡短形式。

省略號還能指明語句的前部分語法元素可重復(fù)。在下面的示例中,可給定多個reset_option值,第1個值后每一個可由逗號分開:

RESET reset_option [,reset_option] ...對于用來設(shè)置shell變量的命令,采用Bourne shell語法給出。例如,用于設(shè)置環(huán)境變量的序列和運(yùn)行命令的序列,與下述Bourne shell語法給出的類似:

shell> VARNAME=value some_command如果你正在使用csh或tcsh,必須使用略有不同的命令。應(yīng)執(zhí)行與下例所示類似的序列:

shell> setenv VARNAME valueshell> some_command

論壇徽章:
0
4 [報告]
發(fā)表于 2008-04-15 11:30 |只看該作者

1.3. MySQL AB概述

MySQL AB是由MySQL創(chuàng)始人和主要開發(fā)人創(chuàng)辦的公司。MySQL AB最初是由David Axmark、Allan Larsson和Michael“Monty”Widenius在瑞典創(chuàng)辦的。

我們致力于開發(fā)MySQL數(shù)據(jù)庫軟件,并向新用戶宣傳推廣它。MySQL AB擁有MySQL源代碼、MySQL徽標(biāo)和(注冊)商標(biāo)、以及本手冊的版權(quán)。請參見
1.4 “MySQL數(shù)據(jù)庫管理系統(tǒng)概述”。

MySQL的核心價值取向指明了我們對MySQL和開發(fā)源碼的貢獻(xiàn)。
這些核心價值取向規(guī)定了MySQL AB與MySQL服務(wù)器軟件的協(xié)作方式:

·         成為世界上最好和使用最廣泛的數(shù)據(jù)庫。

·         面向所有人,而且所有人均能支付得起。

·         使用簡單。

·         在保持快速和安全的同時不斷改進(jìn)。

·         使用和改進(jìn)充滿樂趣。

·         不存在缺陷。

這就是MySQL AB公司及其雇員的核心價值取向。

·         我們同意開放源碼理念,并支持開放源碼群。

·         我們的目標(biāo)是成為最佳公民。

·         我們傾向于那些與我們有共同價值取向和思想傾向的合作伙伴。

·         我們將回復(fù)電子郵件并提供支持。

·         我們是一家與其他方聯(lián)系在一起的“虛擬”公司。

·         我們反對軟件專利。

在MySQL的網(wǎng)站(http://www.mysql.com/)上,給出了關(guān)于MySQL和MySQL的最新信息。

順便提及一下,公司名中的“AB”是瑞典語“aktiebolag”或“股份公司”的首字母縮寫?蓪⑵浞g為“MySQL有限公司”。事實(shí)上,MySQL有限公司和MySQLGmbH均是MySQL AB子公司的名稱。它們分別位于美國和德國。

論壇徽章:
0
5 [報告]
發(fā)表于 2008-04-15 11:33 |只看該作者

1.4. MySQL數(shù)據(jù)庫管理系統(tǒng)概述

MySQL是最流行的開放源碼SQL數(shù)據(jù)庫管理系統(tǒng),它是由MySQL AB公司開發(fā)、發(fā)布并支持的。MySQL AB是由多名MySQL開發(fā)人創(chuàng)辦的一家商業(yè)公司。它是一家第二代開放源碼公司,結(jié)合了開放源碼價值取向、方法和成功的商業(yè)模型。

在MySQL的網(wǎng)站(http://www.mysql.com/)上,給出了關(guān)于MySQL和MySQL的最新信息。

·         MySQL是一種數(shù)據(jù)庫管理系統(tǒng)。

數(shù)據(jù)庫是數(shù)據(jù)的結(jié)構(gòu)化集合。它可以是任何東西,從簡單的購物清單到畫展,或企業(yè)網(wǎng)絡(luò)中的海量信息。要想將數(shù)據(jù)添加到數(shù)據(jù)庫,或訪問、處理計算機(jī)數(shù)據(jù)庫中保存的數(shù)據(jù),需要使用數(shù)據(jù)庫管理系統(tǒng),如MySQL服務(wù)器。計算機(jī)是處理大量數(shù)據(jù)的理想工具,因此,數(shù)據(jù)庫管理系統(tǒng)在計算方面扮演著關(guān)鍵的中心角色,或是作為獨(dú)立的實(shí)用工具,或是作為其他應(yīng)用程序的組成部分。

MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng)。

關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大的倉庫內(nèi)。這樣就增加了速度并提高了靈活性。MySQL的SQL指得是“結(jié)構(gòu)化查詢語言”。SQL是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言,它是由ANSI/ISO SQL標(biāo)準(zhǔn)定義的。SQL標(biāo)準(zhǔn)自1986年以來不斷演化發(fā)展,有數(shù)種版本。在本手冊中,“SQL-92”指得是1992年發(fā)布的標(biāo)準(zhǔn),“SQL:1999”指得是1999年發(fā)布的標(biāo)準(zhǔn),“SQL:2003”指得是標(biāo)準(zhǔn)的當(dāng)前版本。我們采用術(shù)語“SQL標(biāo)準(zhǔn)”標(biāo)示SQL標(biāo)準(zhǔn)的當(dāng)前版本。

MySQL軟件是一種開放源碼軟件。

“開放源碼”意味著任何人都能使用和改變軟件。任何人都能從Internet下載MySQL軟件,而無需支付任何費(fèi)用。如果愿意,你可以研究源碼并進(jìn)行恰當(dāng)?shù)母模詽M足你自己的需求。MySQL軟件采用了GPL(GNU通用公共許可證),http://www.fsf.org/licenses/,定義了在不同情況下可以用軟件作的事和不可作的事。如果你對GPL不滿意,或需要在商業(yè)應(yīng)用程序中嵌入MySQL代碼,可從我方購買商業(yè)許可版本。更多信息,請參見MySQL許可概述(http://www.mysql.com/company/legal/licensing/)。

MySQL數(shù)據(jù)庫服務(wù)器具有快速、可靠和易于使用的特點(diǎn)。

如果它正是你所尋找的,不妨一試。MySQL服務(wù)器還有一套實(shí)用的特性集合,這些特性是通過與我們用戶的密切合作而開發(fā)的。在我們的基準(zhǔn)測試主頁上,給出了MySQL服務(wù)器和其他數(shù)據(jù)庫管理器的比較結(jié)果。請參見7.1.4 “MySQL基準(zhǔn)套件”。

MySQL服務(wù)器最初是為處理大型數(shù)據(jù)庫而開發(fā)的,與已有的解決方案相比,它的速度更快,多年以來,它已成功用于眾多要求很高的生產(chǎn)環(huán)境。盡管MySQL始終在不斷發(fā)展,但目前MySQL服務(wù)器已能提供豐富和有用的功能。它具有良好的連通性、速度和安全性,這使的MySQL十分適合于訪問Internet上的數(shù)據(jù)庫。

MySQL服務(wù)器工作在客戶端/服務(wù)器模式下,或嵌入式系統(tǒng)中。

MySQL數(shù)據(jù)庫軟件是一種客戶端/服務(wù)器系統(tǒng),由支持不同后端的1個多線程SQL服務(wù)器,數(shù)種不同的客戶端程序和庫,眾多管理工具和廣泛的應(yīng)用編程接口API組成。

我們還能以嵌入式多線程庫的形式提供MySQL服務(wù)器,你可以將其鏈接到你的應(yīng)用程序,從而獲得更小、更快、和更易管理的產(chǎn)品。

有大量可用的共享MySQL軟件。

你所喜歡的應(yīng)用程序和語言均支持MySQL數(shù)據(jù)庫服務(wù)器,這種情況十分可能。

“MySQL”的正式發(fā)音是“My Ess Que Ell”(而不是“my sequel”),但我們并不介意你的發(fā)音方式是“my sequel”或其他當(dāng)?shù)胤绞健?

1.4.1. MySQL的歷史
我們最初的出發(fā)點(diǎn)是,使用mSQL來連接我們的表,這類表采用了我們的快速低層面(ISAM)子程序。然而,經(jīng)過一些測試后,我們得出結(jié)論,mSQL的速度或靈活性不足以滿足我們的要求。其結(jié)果是,為我們的數(shù)據(jù)庫提供了新的SQL接口,但API接口與mSQL的幾乎一樣。設(shè)計該API的目的在于,允許將為mSQL編寫的第三方代碼方便地移植到MySQL。

MySQL名稱的起源不明。10多年來,我們的基本目錄以及大量庫和工具均采用了前綴“my”。不過,共同創(chuàng)辦人Monty Widenius的女兒名字也叫“My”。時至今日,MySQL名稱的起源仍是一個迷,即使對我們也一樣。

MySQL Dolphin(我方徽標(biāo))的名稱為“Sakila”,它是由MySQL AB公司的創(chuàng)辦人從用戶在“Dolphin命名”比賽中提供的眾多建議中選定的。該名稱是由來自非洲斯威士蘭的開放源碼軟件開發(fā)人Ambrose Twebaze提出的。根據(jù)Ambrose的說法,按斯威士蘭的本地語言,女性化名稱Sakila源自SiSwati。Sakila也是坦桑尼亞、Arusha地區(qū)的一個鎮(zhèn)的鎮(zhèn)名,靠近Ambrose的母國烏干達(dá)。
1.4.2. MySQL的的主要特性
下面介紹了MySQL數(shù)據(jù)庫軟件的一些重要特性。關(guān)于當(dāng)前特性和即將提供特性的更多信息,,請參見1.6節(jié),“MySQL發(fā)展大事記” 。

·         內(nèi)部構(gòu)件和可移植性

o        使用C和C++編寫

o        用眾多不同的編譯器進(jìn)行了測試

o        能夠工作在眾多不同的平臺上。請參見2.1.1 “MySQL支持的操作系統(tǒng)”。

o        使用GNU Automake、Autoconf和Libtool進(jìn)行移植。

o        提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API。請參見第25章:API和庫。

o        采用核心線程的完全多線程 如果有多個CPU,它能方便地使用這些CPU。

o        提供了事務(wù)性和非事務(wù)性存儲引擎。

o        使用了極快的“B樹”磁盤表(MyISAM)和索引壓縮。

o        添加另一個存儲引擎相對簡單。如果打算為內(nèi)部數(shù)據(jù)庫添加一個SQL接口,該特性十分有用。

o        極快的基于線程的內(nèi)存分配系統(tǒng)。

o        通過使用優(yōu)化的“單掃描多連接”,能實(shí)現(xiàn)極快的連接。

o        存儲器中的哈希表用作臨時表。

o        SQL函數(shù)是使用高度優(yōu)化的類庫實(shí)現(xiàn)的,運(yùn)行很快。通常,在完成查詢初始化后,不存在存儲器分配。

o        采用Purify(商業(yè)內(nèi)存溢出檢測器)以及GPL工具Valgrind(http://developer.kde.org/~sewardj/)測試了MySQL代碼。

o        服務(wù)器可作為單獨(dú)程序運(yùn)行在客戶端/服務(wù)器聯(lián)網(wǎng)環(huán)境下。它也可作為庫提供,可嵌入(鏈接)到獨(dú)立的應(yīng)用程序中。這類應(yīng)用程序可單獨(dú)使用,也能在網(wǎng)絡(luò)環(huán)境下使用。

列類型

眾多列類型: 帶符號/無符號整數(shù),1、2、3、4、8字節(jié)長,F(xiàn)LOAT,DOUBLE,CHAR,VARCHAR,TEXT,BLOB,DATE,TIME,DATETIME,TIMESTAMP,YEAR,SET,ENUM,以及OpenGIS空間類型。請參見第11章:列類型。

定長和可變長度記錄。

語句和函數(shù)

在SELECT和查詢的WHERE子句中,提供完整的操作符和函數(shù)支持。例如:

mysql> SELECT CONCAT(first_name, ' ', last_name) -> FROM citizen -> WHERE income/dependents > 10000 AND age > 30; 對SQL GROUP BY和ORDER BY子句的全面支持。支持聚合函數(shù)(COUNT(), COUNT(DISTINCT ...),AVG(),STD(),SUM(),MAX(),MIN()和GROUP_CONCAT())。

支持LEFT OUTER JOIN和RIGHT OUTER JOIN,采用標(biāo)準(zhǔn)的SQL和ODBC語法。

按照標(biāo)準(zhǔn)SQL的要求,支持表別名和列別名。

DELETE、INSERT、REPLACE和UPDATE返回更改(影響)的行數(shù)。連接到服務(wù)器時,可通過設(shè)置標(biāo)志返回匹配的行數(shù)。

MySQL的SHOW命令可用于檢索關(guān)于數(shù)據(jù)庫、數(shù)據(jù)庫引擎、表和索引的信息。EXPLAIN命令可用于確定優(yōu)化器處理查詢的方式。

函數(shù)名與表名或列名不沖突。例如,ABS是有效的列名。唯一的限制在于,調(diào)用函數(shù)時,函數(shù)名和隨后的符號“(”之間不得有空格。請參見9.6 “MySQL中保留字的處理”。

可以將不同數(shù)據(jù)庫的表混合在相同的查詢中(就像MySQL 3.22中那樣)。

安全

十分靈活和安全的權(quán)限和密碼系統(tǒng),允許基于主機(jī)的驗證。連接到服務(wù)器時,所有的密碼傳輸均采用加密形式,從而保證了密碼安全。

可伸縮性和限制

處理大型數(shù)據(jù)庫: 我們使用了MySQL服務(wù)器和含5千萬條記錄的數(shù)據(jù)庫。我們還聽說,有些用戶將MySQL用于含60000個表和約50億行的數(shù)據(jù)庫。

每個表可支持高達(dá)64條索引(在MySQL 4.1.2之前為32條)。每條索引可由1~16個列或列元素組成。最大索引寬度為1000字節(jié)(在MySQL 4.1.2之前為500)。索引可使用具備CHAR、VARCHAR、BLOB或TEXT列類型的列前綴。

連接性

在任何平臺上,客戶端可使用TCP/IP協(xié)議連接到MySQL服務(wù)器。在Windows系統(tǒng)的NT系列中(NT、2000、XP或2003),客戶端可使用命名管道進(jìn)行連接。在Unix系統(tǒng)中,客戶端可使用Unix域套接字文件建立連接。

在MySQL 4.1和更高的版本中,如果是以“--shared-memory”選項開始,Windows服務(wù)器還支持共享內(nèi)存連接?蛻舳丝墒褂谩--protocol=memory”選項,通過共享內(nèi)存建立連接。

Connector/ODBC (MyODBC)接口為使用ODBC(開放式數(shù)據(jù)庫連接性)連接的客戶端程序提供了MySQL支持。例如,可以使用MS Access連接到你的MySQL服務(wù)器?蛻舳丝蛇\(yùn)行在Windows或Unix平臺上。提供了MyODBC源。支持所有的ODBC 2.5函數(shù),以及眾多其他函數(shù)。請參見第26章:連接器。

Connector/J接口為使用JDBC連接的Java客戶端程序提供了MySQL支持?蛻舳丝蛇\(yùn)行在Windows或Unix平臺上。提供了Connector/J源碼。請參見第26章:連接器。

本地化

服務(wù)器可使用多種語言向客戶端提供錯誤消息。請參見5.10.2節(jié),“設(shè)置錯誤消息語言”。

對數(shù)種不同字符集的全面支持,包括latin1 (cp1252)、german、big5、ujis等。例如,在表名和列名中允許使用斯堪的納維亞字符‘å’、‘ä’和‘ö’。從MySQL 4.1開始,提供了Unicode支持。

所有數(shù)據(jù)均以所選的字符集保存。正常字符串列的比較不區(qū)分大小寫。

分類是根據(jù)所選的字符集(默認(rèn)情況下,使用瑞典校對)進(jìn)行的。啟動MySQL服務(wù)器時,可更改該項設(shè)置。要想查看高級分類的示例,請參見Czech分類代碼。MySQL服務(wù)器支持眾多不同的字符集,這類字符集可在編譯時和運(yùn)行時指定。

客戶端和工具

MySQL服務(wù)器提供了對SQL語句的內(nèi)部支持,可用于檢查、優(yōu)化和修復(fù)表。通過mysqlcheck客戶端,可在命令行上使用這類語句。MySQL還包括myisamchk,這是一種很快的命令行實(shí)用工具,可用于在MyISAM表上執(zhí)行這類操作。請參見第5章:數(shù)據(jù)庫管理。

對于所有MySQL程序,均能通過“-help”或“-?”選項調(diào)用,以獲取聯(lián)機(jī)幫助信息。

論壇徽章:
0
6 [報告]
發(fā)表于 2008-04-15 11:34 |只看該作者
1.4.3. MySQL穩(wěn)定性
本節(jié)回答了如下問題:“MySQL服務(wù)器有多穩(wěn)定?”,以及“在本項目中我能依靠MySQL服務(wù)器嗎”? 我們將嘗試闡明這類問題,并回答很多潛在用戶關(guān)心的某些重要問題。本節(jié)所給出的信息基于通過郵件列表收集的數(shù)據(jù),在確定問題和通報使用類型方面,郵件列表十分有用。

最初的代碼可回溯至20世紀(jì)80年代初。它提供了穩(wěn)定的編碼基數(shù),最初存儲引擎使用的ISAM表格式仍保持向后兼容性。在MySQL AB公司的前身TcX,自1996年中期以來,MySQL代碼在多個項目中工作良好,未出現(xiàn)任何問題。當(dāng)MySQL數(shù)據(jù)庫軟件首次向更廣泛的公眾發(fā)布時,我們的用戶很快發(fā)現(xiàn)了一些未經(jīng)測試的代碼段。自那以后,盡管每個新版本具有很多新的特性,但每次新發(fā)布的版本均存在少量的移植性問題。

每次發(fā)布的MySQL服務(wù)器均是可用的。僅當(dāng)用戶嘗試源自“灰色區(qū)域”的代碼時才會出現(xiàn)問題。當(dāng)然,新用戶不了解“灰色區(qū)域”是什么。因此,在本節(jié)中,我們介紹了目前已知的這類區(qū)域。本節(jié)所作的介紹主要針對MySQL服務(wù)器3.23版和更高版本。在最新的版本中,更正了所有已知和通報的缺陷,但“缺陷”一節(jié)所列的除外,這類缺陷與設(shè)計有關(guān)。請參見A.8節(jié),“MySQL中的已知事宜”。

MySQL服務(wù)器采用了多層設(shè)計和獨(dú)立模塊。在此列出了一些較新的模塊,并指明了它們的測試情況。

·         Replication(穩(wěn)定)

大量使用復(fù)制功能的服務(wù)器均處于生產(chǎn)模式下,結(jié)果良好。在MySQL 5.x中,將繼續(xù)增強(qiáng)復(fù)制功能。

·         InnoDB表(穩(wěn)定)

自3.23.49版以來,InnoDB事務(wù)存儲引擎一直很穩(wěn)定。InnoDB正用于大型、重負(fù)荷生產(chǎn)系統(tǒng)。

·         BDB表(穩(wěn)定)

Berkeley DB碼十分穩(wěn)定,但在MySQL服務(wù)器中,我們?nèi)栽诟倪M(jìn)BDB事務(wù)存儲引擎。

·         全文本搜索(穩(wěn)定)

全文本搜索的使用范圍十分廣泛。在MySQL 4.0和4.1中,增加了重要的特性增強(qiáng)。

·         MyODBC 3.51(穩(wěn)定)

MyODBC 3.51采用了ODBC SDK 3.51,并廣泛用于生產(chǎn)活動中。某些出現(xiàn)的情況看上去與應(yīng)用程序相關(guān),與ODBC驅(qū)動程序或底層數(shù)據(jù)庫服務(wù)器無關(guān)。

1.4.4. MySQL表最大能達(dá)到多少
MySQL 3.22限制的表大小為4GB。由于在MySQL 3.23中使用了MyISAM存儲引擎,最大表尺寸增加到了65536TB(2567 – 1字節(jié))。由于允許的表尺寸更大,MySQL數(shù)據(jù)庫的最大有效表尺寸通常是由操作系統(tǒng)對文件大小的限制決定的,而不是由MySQL內(nèi)部限制決定的。

InnoDB存儲引擎將InnoDB表保存在一個表空間內(nèi),該表空間可由數(shù)個文件創(chuàng)建。這樣,表的大小就能超過單獨(dú)文件的最大容量。表空間可包括原始磁盤分區(qū),從而使得很大的表成為可能。表空間的最大容量為64TB。

在下面的表格中,列出了一些關(guān)于操作系統(tǒng)文件大小限制的示例。這僅是初步指南,并不是最終的。要想了解最新信息,請參閱關(guān)于操作系統(tǒng)的文檔。

操作系統(tǒng)
文件大小限制

Linux 2.2-Intel 32-bit
2GB (LFS: 4GB)

Linux 2.4+
(using ext3 filesystem) 4TB

Solaris 9/10
16TB

NetWare w/NSS filesystem
8TB

win32 w/ FAT/FAT32
2GB/4GB

win32 w/ NTFS
2TB(可能更大)

MacOS X w/ HFS+
2TB


在Linux 2.2平臺下,通過使用對ext2文件系統(tǒng)的大文件支持(LFS)補(bǔ)丁,可以獲得超過2GB的MyISAM表。在Linux 2.4平臺下,存在針對ReiserFS的補(bǔ)丁,可支持大文件(高達(dá)2TB)。目前發(fā)布的大多數(shù)Linux版本均基于2.4內(nèi)核,包含所有所需的LFS補(bǔ)丁。使用JFS和XFS,petabyte(千兆兆)和更大的文件也能在Linux上實(shí)現(xiàn)。然而,最大可用的文件容量仍取決于多項因素,其中之一就是用于存儲MySQL表的文件系統(tǒng)。

關(guān)于Linux中LFS的詳細(xì)介紹,請參見Andreas Jaeger的“Linux中的大文件支持”頁面:http://www.suse.de/~aj/linux_lfs.html。

Windows用戶請注意: FAT和VFAT (FAT32)不適合MySQL的生產(chǎn)使用。應(yīng)使用NTFS。

在默認(rèn)情況下,MySQL創(chuàng)建的MyISAM表允許的最大尺寸為4GB。你可以使用SHOW TABLE STATUS語句或myisamchk -dv tbl_name檢查表的最大尺寸。請參見13.5.4節(jié),“SHOW語法”。

如果需要使用大于4GB的MyISAM表(而且你的操作系統(tǒng)支持大文件),可使用允許AVG_ROW_LENGTH和MAX_ROWS選項的CREATE TABLE語句。請參見13.1.5節(jié),“CREATE TABLE語法”。創(chuàng)建了表后,也可以使用ALTER TABLE更改這些選項,以增加表的最大允許容量。請參見13.1.2節(jié),“ALTER TABLE語法”。

處理MyISAM表文件大小的其他方式:

·         如果你的大表是只讀的,可使用myisampack壓縮它。myisampack通常能將表壓縮至少50%,因而,從結(jié)果上看,可獲得更大的表。此外,myisampack還能將多個表合并為1個表。請參見8.2節(jié),“myisampack:生成壓縮、只讀MyISAM表”。

·         MySQL包含一個允許處理MyISAM表集合的MERGE庫,這類MyISAM表具有與單個MERGE表相同的結(jié)構(gòu)。請參見15.3節(jié),“MERGE存儲引擎”。

1.4.5. 2000年兼容性
MySQL服務(wù)器本身不存在2000年(Y2K)兼容性問題:

·         MySQL服務(wù)器采用了Unix的時間功能,對于TIMESTAMP值,可處理的日期至2037年。對于DATE和DATETIME值,可接受的日期可至9999年。

·         所有的MySQL日期函數(shù)均是在1個源文件sql/time.cc中實(shí)現(xiàn)的,并經(jīng)過了恰當(dāng)編碼以確保2000年安全。

·         在MySQL 3.22和以后的版本中,YEAR列類型能夠在1個字節(jié)內(nèi)保存0年以及1901~2155年,并能使用兩位或四位數(shù)字顯示它們。所有的兩位數(shù)字年份均被視為介于1970~2069年之間,這意味著,如果你在YEAR列中保存了01,MySQL服務(wù)器會將其當(dāng)作2001年。

通過下面的簡單演示示例,表明MySQL服務(wù)器在處理直至9999年的DATE或DATETIME值方面不存在問題,在處理2030年以前的TIMESTAMP值方面也不存在問題:

mysql> DROP TABLE IF EXISTS y2k;Query OK, 0 rows affected (0.01 sec) mysql> CREATE TABLE y2k (date DATE,    ->                   date_time DATETIME,    ->                   time_stamp TIMESTAMP);Query OK, 0 rows affected (0.01 sec) mysql> INSERT INTO y2k VALUES    -> ('1998-12-31','1998-12-31 23:59:59',19981231235959),    -> ('1999-01-01','1999-01-01 00:00:00',19990101000000),    -> ('1999-09-09','1999-09-09 23:59:59',19990909235959),    -> ('2000-01-01','2000-01-01 00:00:00',20000101000000),    -> ('2000-02-28','2000-02-28 00:00:00',20000228000000),    -> ('2000-02-29','2000-02-29 00:00:00',20000229000000),    -> ('2000-03-01','2000-03-01 00:00:00',20000301000000),    -> ('2000-12-31','2000-12-31 23:59:59',20001231235959),    -> ('2001-01-01','2001-01-01 00:00:00',20010101000000),    -> ('2004-12-31','2004-12-31 23:59:59',20041231235959),    -> ('2005-01-01','2005-01-01 00:00:00',20050101000000),    -> ('2030-01-01','2030-01-01 00:00:00',20300101000000),    -> ('2040-01-01','2040-01-01 00:00:00',20400101000000),    -> ('9999-12-31','9999-12-31 23:59:59',99991231235959);Query OK, 14 rows affected (0.01 sec)Records: 14  Duplicates: 0  Warnings: 2 mysql> SELECT * FROM y2k;+------------+---------------------+----------------+| date       | date_time           | time_stamp     |+------------+---------------------+----------------+| 1998-12-31 | 1998-12-31 23:59:59 | 19981231235959 || 1999-01-01 | 1999-01-01 00:00:00 | 19990101000000 || 1999-09-09 | 1999-09-09 23:59:59 | 19990909235959 || 2000-01-01 | 2000-01-01 00:00:00 | 20000101000000 || 2000-02-28 | 2000-02-28 00:00:00 | 20000228000000 || 2000-02-29 | 2000-02-29 00:00:00 | 20000229000000 || 2000-03-01 | 2000-03-01 00:00:00 | 20000301000000 || 2000-12-31 | 2000-12-31 23:59:59 | 20001231235959 || 2001-01-01 | 2001-01-01 00:00:00 | 20010101000000 || 2004-12-31 | 2004-12-31 23:59:59 | 20041231235959 || 2005-01-01 | 2005-01-01 00:00:00 | 20050101000000 || 2030-01-01 | 2030-01-01 00:00:00 | 20300101000000 || 2040-01-01 | 2040-01-01 00:00:00 | 00000000000000 || 9999-12-31 | 9999-12-31 23:59:59 | 00000000000000 |+------------+---------------------+----------------+14 rows in set (0.00 sec)最后2個TIMESTAMP列的值為0,這是因為年份值(2040,9999)超出了TIMESTAMP的最大范圍。TIMESTAMP數(shù)據(jù)類型用于保存當(dāng)前時間,在32位機(jī)器上,支持的取值范圍是19700101000000~20300101000000(帶符號值)。在64位機(jī)器上,TIMESTAMP能處理的值達(dá)2106(無符號值)。

盡管MySQL服務(wù)器本身不存在2000年安全問題,但如果使用了存在Y2K問題的應(yīng)用程序,也會遇到問題。例如,很多早期的應(yīng)用程序采用2位數(shù)值(兩可性)而不是4位數(shù)值來保存和處理年份數(shù)據(jù)。這類問題可能會被使用“00”或“99”的應(yīng)用程序合并為“丟失”值指示符。很不幸,這類問題或許很難更正,這是因為不同的應(yīng)用程序是由不同的程序員編寫的,每位程序員可能使用了不同的慣例集和日期處理函數(shù)。

因此,盡管MySQL服務(wù)器不存在Y2K問題,但應(yīng)用程序須提供無歧義的輸入值。關(guān)于MySQL服務(wù)器在處理含2位年份數(shù)值的兩可性日期輸入數(shù)據(jù)方面的作用,請參見11.3.4節(jié),“Y2K事宜和日期類型” .

論壇徽章:
0
7 [報告]
發(fā)表于 2008-04-15 11:34 |只看該作者

1.5. MaxDB數(shù)據(jù)庫管理系統(tǒng)概述

1.5.1. 什么是MaxDB?
1.5.2. MaxDB的歷史
1.5.3. MaxDB的特性
1.5.4. 許可和支持
1.5.5. MaxDB和MySQL之間的特性差異
1.5.6. MaxDB和MySQL之間的協(xié)同性
1.5.7. 與MaxDB有關(guān)的鏈接
MaxDB是一種大型高效的企業(yè)數(shù)據(jù)庫。數(shù)據(jù)庫管理通過了SAP認(rèn)證。

MaxDB是數(shù)據(jù)庫管理系統(tǒng)的新名稱,以前稱為SAP DB。2003年,SAP AG和MySQL AB確立了合作伙伴關(guān)系,并將數(shù)據(jù)庫系統(tǒng)重命名為MaxDB。自此以后,MaxDB的開發(fā)一直由SAP開發(fā)者團(tuán)隊負(fù)責(zé),就像以前那樣。

MySQL AB與MaxDB團(tuán)隊在SAP處保持著密切的合作,以不斷改進(jìn)MaxDB產(chǎn)品。兩者的聯(lián)合努力包括:開發(fā)新的固有驅(qū)動程序,以便能夠在開發(fā)源碼社區(qū)中更有效地使用MaxDB,并不斷改善各種文檔,以拓展MaxDB的用戶基數(shù)。此外,MySQL和MaxDB數(shù)據(jù)庫的協(xié)同性也被視為一項重要因素,例如,新的MaxDB同步管理器支持從MaxDB到MySQL的數(shù)據(jù)同步。

MaxDB數(shù)據(jù)庫管理系統(tǒng)和MySQL數(shù)據(jù)庫管理系統(tǒng)未共享公用編碼基數(shù)。MaxDB和MySQL數(shù)據(jù)庫管理系統(tǒng)是由MySQL AB公司提供的獨(dú)立產(chǎn)品。

MySQL AB為MaxDB提供了全面的專業(yè)服務(wù)組合。
1.5.1. 什么是MaxDB?
MaxDB是兼容ANSI SQL-92(入門級)、由SAP AG提供的關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng)(RDBMS),也可由MySQL AB提供。MaxDB能夠滿足企業(yè)級應(yīng)用的要求: 安全性,可伸縮性,高度并行性,以及強(qiáng)大的性能。它能運(yùn)行在所有主要的操作系統(tǒng)下。多年的經(jīng)歷表明,它能運(yùn)行,并能在24x7的運(yùn)作中運(yùn)行數(shù)以TB計的數(shù)據(jù)。

數(shù)據(jù)庫開發(fā)是于1977年在柏林技術(shù)大學(xué)作為一個研究項目開始的。在20世紀(jì)80年代早期,它發(fā)展成為數(shù)據(jù)庫產(chǎn)品,隨后歸Nixdorf、Siemens Nixdorf、Software AG所有,目前歸SAP AG所有。在這一發(fā)展歷程中,它先后被命名為VDN、Reflex、Supra 2、DDB/4、Entire SQL-DB-Server和ADABAS D。1997年,SAP從軟件AP手中接管了該軟件,并將其重新命名為SAP DB。自2000年10月起,依GNU通用公共許可的名義發(fā)布了眾多的SAP DB源碼(請參見附錄J:GNU通用公共許可)。

2003年,SAP AG和MySQL AB確立了合作伙伴關(guān)系,并將數(shù)據(jù)庫系統(tǒng)重命名為MaxDB。
1.5.2. MaxDB的歷史
MaxDB的歷史可追溯至SAP DB、SAP AG的DBMS,也就是說,MaxDB是SAP DB的重命名和增強(qiáng)版本。多年來,MaxDB已成功用于mySAP業(yè)務(wù)套件的小型、中性和大型安裝實(shí)例,以及需要企業(yè)級DBMS的其他要求苛刻的SQL應(yīng)用(涉及用戶數(shù)、事務(wù)工作量、以及數(shù)據(jù)庫的大。

除了第三方數(shù)據(jù)庫系統(tǒng)外,如Oracle、Microsoft SQL Server以及IBM DB2,SAP DB意味著另一種選擇。2000年10月,SAP AG依 GNU GPL許可(請參見附錄J:GNU通用公共許可)發(fā)布了SAP DB,從而使得其成為開放源碼軟件。

目前,MaxDB已被世界各地約3500個SAP客戶使用。不僅如此,在SAP的IT部門內(nèi),大多數(shù)安裝在Unix和Linux平臺上的DBMS均依賴于MaxDB。MaxDB正轉(zhuǎn)向重負(fù)荷聯(lián)機(jī)事務(wù)處理(OLTP),用戶數(shù)以千計,數(shù)據(jù)庫的大小從數(shù)百GB到數(shù)TB。

2003年,SAP和MySQL確立了合作伙伴關(guān)系,并達(dá)成了開發(fā)合作協(xié)議。作為其結(jié)果,自7.5版發(fā)布以來(2003年11月),SAP的數(shù)據(jù)庫系統(tǒng)SAP DB以MySQL的MaxDB名義提供。

MaxDB 7.5版是SAP DB 7.4編碼基數(shù)的直接改進(jìn)。因此,MaxDB軟件7.5版可用于SAP DB 7.2.04版和更高版本的直接升級。

與以往相同,目前,位于SAP AG的前SAP DB開發(fā)團(tuán)隊仍負(fù)責(zé)MaxDB的開發(fā)和支持。MySQL AB與位于SAP的MaxDB團(tuán)隊密切合作,致力于改進(jìn)MaxDB產(chǎn)品,請參見1.5節(jié),“MaxDB數(shù)據(jù)庫管理系統(tǒng)概述”。SAP AG和MySQL AB均負(fù)責(zé)MaxDB的銷售和分發(fā)。MaxDB和MySQL服務(wù)器的提升促進(jìn)了企業(yè)協(xié)作,從而使得兩種產(chǎn)品系列均從中受益。

與SAP解決方案一起提供之前,或放在MySQL站點(diǎn)供下載之前,MaxDB受SAP AG全面質(zhì)量保證計劃的控制。

1.5.3. MaxDB的特性
MaxDB是一種大型、通過SAP認(rèn)證的開放源碼數(shù)據(jù)庫,可用于OLTP和OLAP,它具有高的可靠性、可用性和可伸縮性,以及相當(dāng)完善的特性集。它定位于大型mySAP商業(yè)套件環(huán)境,以及需要最大企業(yè)級數(shù)據(jù)庫功能的其他應(yīng)用,此外,它還補(bǔ)充了MySQL數(shù)據(jù)庫服務(wù)器。

MaxDB是采用客戶端/服務(wù)器模式運(yùn)作的產(chǎn)品。開發(fā)它的目的在于滿足OLTP和數(shù)據(jù)倉庫/OLAP/決策支持方面的安裝需求。優(yōu)點(diǎn):

· 簡單的配置和管理: 基于GUI(圖形化用戶界面)的安裝管理器和數(shù)據(jù)庫管理器,可作為DBMS操作的單個管理工具。

· 不間斷操作,無需計劃的停機(jī)時間,也不需要持久性維護(hù):自動空間管理,無需重組。

· 精心設(shè)計的備份和恢復(fù)能力:聯(lián)機(jī)備份和增量備份,恢復(fù)向?qū)б灾笇?dǎo)你完成整個恢復(fù)步驟。

· 支持大量用戶,數(shù)TB的數(shù)據(jù)庫大小,以及苛刻的工作量要求: 高的可靠性,性能和可伸縮性

· 高可用性: 簇支持,待機(jī)配置,熱待機(jī)配置


1.5.4. 許可和支持
使用MySQL AB提供的其他產(chǎn)品的許可證,可使用MaxDB。因此,可在GNU通用公共許可下以及商業(yè)許可下使用MaxDB。關(guān)于許可的更多信息,請訪問http://www.mysql.com/company/legal/licensing/
MySQL AB負(fù)責(zé)為非SAP客戶提供MaxDB技術(shù)支持。MaxDB支持可在各種層面上提供(基本,銀質(zhì)和金質(zhì)),將無限的電子郵件/Web支持?jǐn)U展為對業(yè)務(wù)關(guān)鍵系統(tǒng)的全天候電話支持。

當(dāng)MaxDB與Sap應(yīng)用程序(如SAP NetWeaver和mySAP商業(yè)套件)一起使用時,MySQL AB還能為其提供許可證和支持。關(guān)于能滿足您需求的許可和支持方面的更多信息,請聯(lián)系MySQL AB。

我們也提供咨詢和培訓(xùn)服務(wù)。MySQL將定期提供MaxDB課程,關(guān)于課程表,請參見http://www.mysql.com/training/。

1.5.5. MaxDB和MySQL之間的特性差異
MaxDB是MySQL AB公司通過SAP認(rèn)證的數(shù)據(jù)庫。MaxDB數(shù)據(jù)庫服務(wù)器補(bǔ)充了MySQL AB產(chǎn)品系列。某些MaxDB特性在MySQL數(shù)據(jù)庫服務(wù)器上不可用,反之亦然。
下面簡要介紹了MaxDB和MySQL的主要差別,但并不完全。

· MaxDB是采用客戶端/服務(wù)器模式運(yùn)作的系統(tǒng)。MySQL能夠作為客戶端/服務(wù)器系統(tǒng)運(yùn)行,也能作為嵌入式系統(tǒng)運(yùn)行。

· MaxDB或許不能運(yùn)行在MySQL支持的所有平臺上。

· MaxDB采用了針對客戶端/服務(wù)器通信的專有網(wǎng)絡(luò)協(xié)議。MySQL采用了TCP/IP(采用或未采用SSL加密)、套接字協(xié)議(類似Unix的系統(tǒng)下)或命名管道(Windows NT系列下)。

· MaxDB支持存儲程序。對于MySQL,在5.0版本中實(shí)現(xiàn)了存儲程序。MaxDB還支持通過SQL擴(kuò)展進(jìn)行的觸發(fā)程序編程,該功能計劃在MySQL 5.1中實(shí)現(xiàn)。MaxDB包含針對存儲程序語言的調(diào)試程序,能夠?qū)⒍鄠嵌套式觸發(fā)程序串聯(lián)在一起,而且每個動作和行均支持多個觸發(fā)程序。

· MaxDB的發(fā)布采用了基于文本、圖形或Web的用戶界面。MySQL的發(fā)布僅采用基于文本的用戶界面:圖形化用戶界面(MySQL控制中心、MySQL管理器)與主發(fā)布版本是單獨(dú)提供的。針對MySQL的基于Web的用戶界面是由第三方提供的。

· MaxDB支持多種也被MySQL支持的編程接口。為了使用MaxDB進(jìn)行開發(fā),還提供了MaxDB ODBC驅(qū)動程序,SQL數(shù)據(jù)庫連通(SQLDBC),JDBC驅(qū)動程序,Perl和Python模塊,以及MaxDB PHP擴(kuò)展(通過使用PHP來訪問MySQL MaxDB數(shù)據(jù)庫)。第三方編程接口: 支持OLE DB、ADO、DAO、RDO、以及.NET和ODBC。MaxDB支持嵌入式SQL和C/C++。

· MaxDB包含MySQL不具備的管理特性: 按時間、事件和告警進(jìn)行規(guī)劃安排,并能在達(dá)到告警閾值時將消息發(fā)送給數(shù)據(jù)庫管理器。

1.5.6. MaxDB和MySQL之間的協(xié)同性
MaxDB和MySQL是獨(dú)立的數(shù)據(jù)庫管理服務(wù)器。系統(tǒng)間的協(xié)同性是可能的,通過相應(yīng)的方式,系統(tǒng)能夠彼此交換數(shù)據(jù)。要想在MaxDB和MySQL之間交換數(shù)據(jù),可使用系統(tǒng)的導(dǎo)入和導(dǎo)出工具,或MaxDB同步管理器。對于導(dǎo)入和導(dǎo)出工具,可在手動模式下傳輸數(shù)據(jù)(很少出現(xiàn))。MaxDB同步管理器提供了更快的數(shù)據(jù)傳輸功能。
MaxDB裝載器可用于導(dǎo)出數(shù)據(jù)和對象定義。裝載器能夠以MaxDB內(nèi)部二進(jìn)制格式和文本格式(CSV)導(dǎo)出數(shù)據(jù)。對于以文本格式從MaxDB導(dǎo)出的數(shù)據(jù),可使用mysqldump數(shù)據(jù)庫備份程序?qū)⑵渲匦聦?dǎo)入到MySQL中。要想將MySQL數(shù)據(jù)導(dǎo)入到MaxDB,可使用mysqldump創(chuàng)建INSERT語句或SELECT ... INTO OUTFILE語句以創(chuàng)建文本文件(CSV)。使用MaxDB裝載器裝載由MySQL生成的數(shù)據(jù)文件。

可以使用MaxDB裝載器和MySQL工具mysqldump,在系統(tǒng)間交換數(shù)據(jù)定義。由于兩種系統(tǒng)使用的SQL“方言”略有差異,而且MaxDB擁有目前尚不被MySQL支持的特性(如SQL約束),我們建議以手動方式調(diào)整定義文件。Mysqldump工具提供了“--compatible-name = maxdb”選項來生成與MaxDB兼容的輸出,以便使移植更為簡單。

作為MaxDB 7.6的組成部份,發(fā)布了MaxDB同步管理器。同步管理器支持?jǐn)?shù)個MaxDB實(shí)例間的異步復(fù)制。但是,也設(shè)計規(guī)劃了協(xié)同特性,因此,同步管理器支持復(fù)制到MySQL服務(wù)器的操作,以及來自MySQL服務(wù)器的復(fù)制操作。

在首次發(fā)布的版本中,同步管理器支持將數(shù)據(jù)插入到MySQL。這意味著,在開始時僅支持從MaxDB到MySQL的復(fù)制。在2005年的安排中,將增加把數(shù)據(jù)從MySQL服務(wù)器導(dǎo)出到同步管理器的功能,因而增加了對從MySQL到MaxDB的復(fù)制支持。

1.5.7. 與MaxDB有關(guān)的鏈接
關(guān)于MaxDB信息的主頁位于http://www.mysql.com/products/maxdb。在該頁面上,詳細(xì)介紹了MaxDB數(shù)據(jù)庫管理系統(tǒng)的特性,并提供了指向文檔的多個超級鏈接。
除了本章給出的介紹外,MySQL參考手冊不含任何MaxDB文檔。MaxDB有自己的文檔,稱為MaxDB庫。MaxDB庫可從下述網(wǎng)址獲得:http://dev.mysql.com/doc/maxdb/index.html。

MySQL AB運(yùn)行著一個關(guān)于MaxDB的社區(qū)郵件列表,請參見http://lists.mysql.com/maxdb。該列表給出了生動活潑的社區(qū)討論。很多核心開發(fā)人員均為其提供了相應(yīng)的貢獻(xiàn)。產(chǎn)品發(fā)布將被發(fā)送至該列表。

MaxDB的Web論壇網(wǎng)址是http://forums.mysql.com/。該論壇主要處理關(guān)于MaxDB的問題,而不是關(guān)于SAP應(yīng)用程序的問題。

論壇徽章:
0
8 [報告]
發(fā)表于 2008-04-15 11:35 |只看該作者

1.6. MySQL發(fā)展大事記

1.6.1. MySQL 5.1的新特性
在本節(jié)中,介紹了MySQL發(fā)展歷程中的重要事件,包括各種MySQL版本中已實(shí)現(xiàn)的主要特性或規(guī)劃中的特性。在下節(jié)中,介紹了各發(fā)布系列的相關(guān)信息。

當(dāng)前的生產(chǎn)版本系列是MySQL 5.0,據(jù)稱它能穩(wěn)定地用于生產(chǎn)環(huán)境,如2005年10月發(fā)布的5.0.15版。以前的生產(chǎn)版本系列是MySQL 4.1,據(jù)稱它也能穩(wěn)定地用于生產(chǎn)環(huán)境,如2004年10月發(fā)布的4.1.7版!吧a(chǎn)狀態(tài)”意味著未來的5.0和4.1開發(fā)僅限于修正缺陷。對于較早的MySQL 4.0和3.23系列,僅會對關(guān)鍵缺陷進(jìn)行更正。

對于MySQL 5.0和5.1系列,相關(guān)的MySQL開發(fā)正在積極進(jìn)行當(dāng)中,并會為后者增加新的特性。

從1個版本系列升級到下一個版本系列之前,請參見2.10節(jié),“升級MySQL”的介紹。

在下面的表格中,歸納了要求最迫切的特性,以及實(shí)施了這些特性或計劃實(shí)施這些特性的版本:

特性
MySQ系列

Foreign keys
3.23(針對InnoDB存儲引擎)

Unions
4.0

Subqueries
4.1

R-trees
4.1(針對MyISAM 存儲引擎)

Stored procedures
5.0

Views
5.0

Cursors
5.0

XA transactions
5.0

Foreign keys
5.1(在3.23中實(shí)施,對于InnoDB)

Triggers
5.0和5.1

Full outer joins
5.1

Constraints
5.1(在3.23中實(shí)施,對于InnoDB)

Partitioning
5.1

Pluggable Storage Engine API
5.1

Row-Based Replication
5.1


1.6.1. MySQL 5.1的新特性
關(guān)于我們打算在MySQL 5.1中增加的特性列表,請參見1.6節(jié),“MySQL發(fā)展大事記”。隨著5.1版的不斷發(fā)展,我們將在本節(jié)增加更多詳細(xì)信息。

另請參見第18章:分區(qū)。

論壇徽章:
0
9 [報告]
發(fā)表于 2008-04-15 11:35 |只看該作者

1.7. MySQL信息源

1.7.1. MySQL郵件列表
1.7.1.1. MySQL郵件列表
1.7.1.2. 請教問題或通報缺陷
1.7.1.3. 如何通報缺陷和問題
1.7.1.4. 在郵件列表上回答問題的指南
在本節(jié)中介紹了MySQL郵件列表,并給出了使用郵件列表的指南。訂購郵件列表后,將以電子郵件消息的形式收到所有已記錄的信息。你也可以將自己的問題和解答發(fā)送至郵件列表。

1.7.1.1. MySQL郵件列表
要想訂購本節(jié)所介紹的郵件列表或取消訂購,請訪問http://lists.mysql.com/。對于大多數(shù)郵件列表,可選擇能夠獲取單獨(dú)消息的正規(guī)列表版本,或選擇按天發(fā)布的包含大量消息的文摘版本。

不要將訂購信息或取消訂購的信息發(fā)送到郵件列表,原因在于,這類消息將自動分發(fā)給數(shù)千位其他用戶。

在你的所在地,可能有很多MySQL郵件列表的訂戶。如果是這樣,該地點(diǎn)可能會有本地郵件列表,這樣,從lists.mysql.com發(fā)出的消息將被傳播到本地列表。在這類情形下,請與你的系統(tǒng)管理員聯(lián)系,添加或刪除本地MySQL列表。

如果希望將郵件列表的信息傳送到郵件程序的郵箱中,請根據(jù)消息標(biāo)題設(shè)置過濾器?梢允褂昧斜鞩D: 或投遞至: 識別列表消息的標(biāo)題。

MySQL列表包含:

·         通告

該列表用于通告新的MySQL版本和相關(guān)程序。這是1種低容量列表,所有的MySQL用戶均應(yīng)訂購它。

·         mysql

這是關(guān)于一般MySQL討論的主要列表。請注意,對于某些主題來說,在更專門的列表中會得到更好地討論。如果將問題張貼到了錯誤的列表,可能不會得到回答。

·         缺陷

該列表面向那些希望隨時了解自上次MySQL版本發(fā)布以來已通報事宜的人員,或希望積極參與缺陷尋找和更正進(jìn)程的人員。請參見1.7.1.3節(jié),“如何通報缺陷和問題”。

·         內(nèi)部構(gòu)件

該列表面向那些與MySQL代碼打交道的人員。它也是討論MySQL開發(fā)并張貼補(bǔ)丁的論壇。

·         mysqldoc

該列表面向那些與MySQL文檔打交道的人員: MySQL AB公司的人員,譯者,以及其他社區(qū)成員。

·         基準(zhǔn)

該列表面向任何對性能事宜感興趣的人員。討論主要集中在數(shù)據(jù)庫性能方面(不限于MySQL),也包括更廣的類別,如內(nèi)核性能、文件系統(tǒng)、磁盤系統(tǒng)等。

·         packagers(包裝程序)

該列表主要討論包裝和分發(fā)MySQL方面的問題。這是供分發(fā)版維護(hù)人員交流MySQL打包事宜的論壇,為的是確保在所有支持的平臺和操作系統(tǒng)上,MySQL的外觀和感覺盡可能類似。

·         java

該列表主要討論MySQL服務(wù)器和Java方面的問題。它主要討論JDBC驅(qū)動程序,包括MySQL Connector/J。

·         win32

該列表涵蓋了在Microsoft操作系統(tǒng)環(huán)境下(如Windows 9x, Me, NT, 2000, XP和2003)與MySQL軟件有關(guān)的所有主題,

·         myodbc

該列表涵蓋了與使用ODBC連接到MySQL服務(wù)器有關(guān)的所有主題。

·         gui-tools

該列表涵蓋了與MySQL GUI工具有關(guān)的所有主題,包括MySQL管理員以及MySQL控制中心圖形客戶端。

·         cluster

該列表主要討論MySQL簇。

·         dotnet

該列表主要討論MySQL服務(wù)器和.NET平臺方面的問題。它與MySQL Connector/Net提供人的關(guān)系最密切。

·         plusplus

該列表涵蓋了使用C++ API進(jìn)行MySQL編程的所有主題。

·         perl

該列表涵蓋了與Perl對MySQL支持、以及DBD::mysql有關(guān)的所有主題。

如果無法從MySQL郵件列表或論壇獲得問題解答,一種選擇是購買MySQL AB的支持服務(wù)。這樣,你就能與MySQL開發(fā)人員直接聯(lián)系。

下面介紹了一些英語以外其他語言的MySQL郵件列表。這些郵件列表不是由MySQL AB運(yùn)營的。

·         <mysql-france-subscribe@yahoogroups.com>

法語郵件列表。

·         <list@tinc.net>

朝鮮語郵件列表。發(fā)送電子郵件訂購mysql your@email.address。

·         <mysql-de-request@lists.4t2.com>

德語郵件列表。發(fā)送電子郵件訂購mysql-de your@email.address。在http://www.4t2.com/mysql/站點(diǎn)上,可找到關(guān)于該郵件列表的更多信息。

·         <mysql-br-request@listas.linkway.com.br>

葡萄牙語郵件列表。發(fā)送電子郵件訂購mysql-br your@email.address。

·         <mysql-alta@elistas.net>

西班牙語郵件列表。發(fā)送電子郵件訂購mysql your@email.address。

1.7.1.2. 請教問題或通報缺陷
張貼缺陷報告或問題之前,請:
·         首先搜索MySQL在線手冊,http://dev.mysql.com/doc/。我們經(jīng)常更新該手冊,以使該手冊保持最新,其中包含相應(yīng)的解決方案和新發(fā)現(xiàn)的問題。變更史(http://dev.mysql.com/doc/mysql/en/News.html)可能更有用,原因在于,在較新的版本中可能包含對你所提出問題的解決方案。

·         搜索缺陷數(shù)據(jù)庫,http://bugs.mysql.com/,查找該缺陷是否已通報或更正。

·         搜索MySQL郵件列表檔案,http://lists.mysql.com/

·         你也可以使用http://www.mysql.com/search/來搜索MySQL AB網(wǎng)站上的所有網(wǎng)頁(包含手冊)。

如果無法在手冊或檔案中找到答案,請與本地MySQL專家協(xié)商。如果仍無法獲得解答,在與我們聯(lián)系之前,請按照介紹發(fā)送電子郵件至MySQL郵件列表,具體內(nèi)容見下一節(jié)。

1.7.1.3. 如何通報缺陷和問題
通報缺陷的正常地址是http://bugs.mysql.com/,它也是我方缺陷數(shù)據(jù)庫的地址。這是1個公共數(shù)據(jù)庫,任何人都能瀏覽它并進(jìn)行相應(yīng)的搜索。如果登錄到系統(tǒng),可輸入新的報告。

編寫良好的缺陷報告需要耐心,但在第1時間正確地完成它不僅能節(jié)省我們的時間,也能節(jié)省你自己的時間。良好的缺陷報告應(yīng)包含對缺陷的完整測試情況,以便我們能夠在下個版本中更正該缺陷。本節(jié)介紹的內(nèi)容用于幫助你正確地編寫報告,從避免將你的時間浪費(fèi)在對我們幫助不大或沒有幫助的事上,

我們鼓勵任何人使用mysqlbug腳本來生成缺陷報告(或通報問題)。Mysqlbug可在腳本目錄下找到(源碼分發(fā)版),也能在MySQL安裝目錄的bin子目錄下找到(二進(jìn)制分發(fā)版)。如果不能使用mysqlbug(例如,如果你正在Windows平臺上運(yùn)行),應(yīng)包括本節(jié)所述的所有必要信息(更重要的是,應(yīng)介紹操作系統(tǒng)和MySQL版本),這點(diǎn)十分重要。

通過自動確定下述信息,mysqlbug腳本能夠幫助你生成報告,但是,如果遺漏了某些重要事項,請將其包含在消息中。請認(rèn)真閱讀本節(jié),并確保在你的報告中包含了本節(jié)所述的所有信息。

在張貼問題前,最好使用MySQL服務(wù)器的最新生產(chǎn)版或開發(fā)版對問題進(jìn)行測試。通過在所含的測試范例上使用“mysql test < script_file”,或運(yùn)行缺陷報告中所含的Shell或Perl腳本,任何人均應(yīng)能重復(fù)該缺陷。

對于在缺陷數(shù)據(jù)庫(http://bugs.mysql.com/)中張貼的所有缺陷,均會被納入或記錄在下一個MySQL版本中。如果只需要少量更改就能更正問題,我們或許會給出更正該問題的補(bǔ)丁。

如果發(fā)現(xiàn)MySQL中存在敏感的安全缺陷,請發(fā)送電子郵件至security@mysql.com。

如果有1份可重復(fù)的缺陷報告,請將其提交到缺陷數(shù)據(jù)庫,http://bugs.mysql.com/。注意,即使在該情況下,也應(yīng)首先運(yùn)行mysqlbug腳本以找出與你的系統(tǒng)有關(guān)的信息,這是一個不錯的習(xí)慣。對于任何我們能再現(xiàn)的缺陷,在下一個MySQL版本中修正它的機(jī)會很大。

要想通報其他問題,請使用MySQL郵件列表。

請注意,我們可能會對包含過多信息的消息做出響應(yīng),但不太會對包含過少信息的消息做出回應(yīng)。人們常會省略掉一些事實(shí),因為他們認(rèn)為自己知道了故障的原因,并想當(dāng)然地認(rèn)為這類細(xì)節(jié)無關(guān)緊要。良好的原則是: 如果你對陳述某事猶豫不定,請陳述之。如果我們要求你提供初始報告中缺少的信息,在報告中編寫多行信息源比等候回復(fù)要快,麻煩也更小。

在缺陷報告中,最常犯的錯誤包括:(a)未包含所使用MySQL的版本號,以及(b)未完全描述安裝了MySQL服務(wù)器的平臺(包括平臺類型,以及版本號)。這是高度相關(guān)的信息,如果沒有它,99%的缺陷報告無用。我們遇到這類問題,“為何它對我沒用”? 隨后,我們發(fā)現(xiàn)在該MySQL版本中,所請求的特性尚未實(shí)施,或在較新的MySQL版本中已更正了報告中描述的缺陷。有些時候,錯誤與平臺相關(guān),在這類情況下,如果不知道操作系統(tǒng)和平臺的版本號,我們幾乎不可能更正任何問題。

如果你是從源碼編譯MySQL的,如果與問題有關(guān),還應(yīng)提供有關(guān)編譯器的信息。問題經(jīng)常出在編譯器,但人們卻認(rèn)為問題與MySQL有關(guān)。大多數(shù)編譯均處于不斷的開發(fā)過程中,并會變得越來越好。為了確定問題是否與你的編譯器有關(guān),我們需要知道你所使用的編譯器。注意,所有的編譯問題均應(yīng)被當(dāng)作缺陷并予以通報。

在你的報告中包含良好的問題描述時,報告最有幫助。也就是說,應(yīng)給出示例,指明導(dǎo)致問題的所有事項,并準(zhǔn)確描述問題本身。最好的報告應(yīng)包含完整的示例,這類示例應(yīng)闡明再現(xiàn)缺陷或問題的方式。請參見E.1.6節(jié),“如果出現(xiàn)表崩潰,請生成測試案例”。

如果程序產(chǎn)生了錯誤消息,也應(yīng)將其包含在你的報告中,這點(diǎn)很重要。如果我們打算使用程序搜索檔案,最好是通報的錯誤消息與程序生成的錯誤消息準(zhǔn)確匹配。(即使是字母的大小寫也應(yīng)考慮在內(nèi))。永遠(yuǎn)不要嘗試從記憶中再現(xiàn)錯誤消息,而是應(yīng)將整個消息拷貝并粘貼到報告中。

如果遇到與Connector/ODBC (MyODBC)有關(guān)的問題,請生成1份跟蹤文件,并與報告一起發(fā)送給我們。請參見26.1.1.9節(jié),“如何通報MyODBC問題或缺陷”。

請記住,很多閱讀你報告的人員會使用80列的顯示器。使用mysql命令行工具生成報告或示例時,如果輸出內(nèi)容可能會超過這類顯示器的可用寬度,應(yīng)使用“--vertical”選項(或“\G”語句終結(jié)符),例如EXPLAIN SELECT語句,請參見本節(jié)后面給出的示例。

請在你的報告中包含下述信息:

·         你所使用的MySQL分發(fā)版的版本號(例如MySQL 4.0.12)。通過執(zhí)行mysqladmin version,即可了解正在運(yùn)行版本。Mysqladmin程序位于MySQL安裝目錄的bin子目錄下。

·         出現(xiàn)問題的機(jī)器的制造商和型號。

·         操作系統(tǒng)的名稱和版本。如果你使用的是Windows操作系統(tǒng),通常能通過雙擊“我的電腦”圖標(biāo)并點(diǎn)擊“幫助/關(guān)于Windows”菜單來了解操作系統(tǒng)的名稱和版本。對于大多數(shù)Unix操作系統(tǒng),可通過執(zhí)行命令uname –a獲取這類信息。

·         某些時候,內(nèi)存容量(實(shí)際內(nèi)存和虛擬內(nèi)存)也有關(guān)系。如果懷疑它,也應(yīng)包含這類數(shù)值。

·         如果你正在使用的是MySQL軟件的源碼分發(fā)版,還須提供所使用編譯器的名稱和版本。如果使用的是二進(jìn)制分發(fā)版,需要提供其名稱。

·         如果在編譯過程中出現(xiàn)問題,應(yīng)給出準(zhǔn)確的錯誤消息,出錯文件中的不良代碼,以及該代碼附近的數(shù)行內(nèi)容。

·         如果mysqld停止運(yùn)行,還應(yīng)通報導(dǎo)致mysqld崩潰的查詢。通常,能夠通過運(yùn)行啟用了查詢?nèi)罩竟δ艿膍ysqld找出它,然后在mysqld崩潰后查找日志。請參見E.1.5節(jié),“使用日志文件找出mysqld中的錯誤原因”。

·         如果數(shù)據(jù)庫表與問題有關(guān),還應(yīng)包含mysqldump --no-data db_name tbl_name的輸出。這是一種了解數(shù)據(jù)庫中表相關(guān)信息的簡單易行而且功能強(qiáng)大的方式。該信息能幫助我們建立與你所遇到的情況相匹配的場景。

·         對于與SELECT語句的速度有關(guān)的缺陷或問題,總應(yīng)包含“EXPLAIN SELECT ...”的輸出,以及SELECT語句生成的行數(shù)(至少)。對于每個涉及的表,應(yīng)包含SHOW CREATE TABLE tbl_name的輸出。你所提供的關(guān)于具體情況的信息越多,得到幫助的可能性就越大。

下面給出了一個良好缺陷報告的示例。應(yīng)使用mysqlbug腳本張貼它。本例采用了mysql命令行工具。對于輸出內(nèi)容可能會超過80列顯示器可用寬度的語句,應(yīng)使用“\G”語句終結(jié)符。

mysql> SHOW VARIABLES;mysql> SHOW COLUMNS FROM ...\G       <output from SHOW COLUMNS>mysql> EXPLAIN SELECT ...\G       <output from EXPLAIN>mysql> FLUSH STATUS;mysql> SELECT ...;       <A short version of the output from SELECT,       including the time taken to run the query>mysql> SHOW STATUS;       <output from SHOW STATUS>·         如果在運(yùn)行mysqld時出現(xiàn)錯誤或問題,應(yīng)提供導(dǎo)致異常的輸入腳本。該腳本應(yīng)包含任何所需的源文件。越能再現(xiàn)具體情況的腳本越好。如果能夠創(chuàng)建可再現(xiàn)的測試范例,請將其張貼到http://bugs.mysql.com/,它將得到優(yōu)先對待。

如果你不能提供腳本,至少應(yīng)在你的郵件中包含mysqladmin variables extended-status processlist的輸出,以提供關(guān)于系統(tǒng)執(zhí)行情況的某些信息。

·         如果不能生成包含數(shù)行內(nèi)容的測試范例,或者如果測試表過大以至于無法發(fā)送到郵件列表(超過10行),應(yīng)使用mysqldump轉(zhuǎn)儲表,并創(chuàng)建描述問題的README文件。

使用tar和gzip或zip創(chuàng)建文件的壓縮包檔案,并使用FTP將檔案傳輸?shù)?a href="ftp://ftp.mysql.com/pub/mysql/upload/" target="_blank">ftp://ftp.mysql.com/pub/mysql/upload/。然后將問題提交到我們的缺陷數(shù)據(jù)庫中,http://bugs.mysql.com/。

·         如果你認(rèn)為MySQL服務(wù)器生成了奇怪的查詢結(jié)果,不僅應(yīng)包含結(jié)果,還應(yīng)給出你對該結(jié)果的看法,以及支持觀點(diǎn)的基礎(chǔ)。

·         提供問題的示例時,最好使用實(shí)際情況下已有的變量名、表名等,而不是新名稱。問題可能與變量名或表名有關(guān);蛟S這類情況很罕見,但安全總比道歉強(qiáng)。歸根結(jié)底,對你來說,提供關(guān)于實(shí)際情況的示例要簡單些,當(dāng)然對我們也更好。如果你的數(shù)據(jù)不打算展示給其他人,請使用FTP將其傳輸?shù)?a href="ftp://ftp.mysql.com/pub/mysql/upload/" target="_blank">ftp://ftp.mysql.com/pub/mysql/upload/。如果信息是高度保密的,而且你甚至不打算向我們展示,請使用其他名稱給出示例,但請注意,這應(yīng)是最后的選擇。

·         如果可能,應(yīng)包含相關(guān)程序的所有選項。例如,應(yīng)指明啟動mysqld服務(wù)器時使用的選項,以及用來運(yùn)行MySQL客戶端程序的選項。對于程序(如mysqld和mysql)選項以及configure腳本的選項,通常是解答問題的關(guān)鍵,關(guān)系十分密切。包含它們總不是壞主意。如果使用了任何模塊,如Perl或PHP等,還應(yīng)給出它們的版本。

·         如果你的問題與權(quán)限系統(tǒng)有關(guān),請給出mysqlaccess的輸出,mysqladmin reload的輸出,以及進(jìn)行連接時獲得的所有錯誤消息。測試權(quán)限時,首先應(yīng)運(yùn)行mysqlaccess。接下來,執(zhí)行mysqladmin reload version,并與導(dǎo)致問題的程序相連。mysqlaccess可在MySQL安裝目錄的bin子目錄下找到。

·         如果你有關(guān)于某一缺陷的補(bǔ)丁,也請將它包含在內(nèi)。但不要認(rèn)為該補(bǔ)丁是我們所需的全部,如果未提供補(bǔ)丁所更正缺陷的必要信息(如測試范例),不要假定我們會使用它。我們可能會通過補(bǔ)丁發(fā)現(xiàn)問題,或者不能理解該補(bǔ)丁,如果是這樣,我們不會使用該補(bǔ)丁。

如果我們不能準(zhǔn)確核實(shí)補(bǔ)丁的目的,將不會使用它。測試范例會對我們有所幫助。請指明該補(bǔ)丁能處理所有的問題。如果我們發(fā)現(xiàn)補(bǔ)丁不能工作的臨界情況(即使很罕見),它可能是無用的。

·         關(guān)于缺陷是什么、出現(xiàn)原因、以及缺陷導(dǎo)因的猜測通常是錯的。即使是MySQL團(tuán)隊,在未使用調(diào)試器判定缺陷真實(shí)原因的情況下,也不能妄加猜測。

·         請在你的缺陷報告中指明,你已參閱了參考手冊并寄出了檔案,以便讓其他人知道你已作了自行解決問題的嘗試。

·         如果遇到解析錯誤,請仔細(xì)檢查語法。如果不能找出錯誤出現(xiàn)在那里,很可能是因為你使用的MySQL服務(wù)器版本不支持你使用的語法。如果你使用的是http://dev.mysql.com/doc/上提供的當(dāng)前版本和手冊,不要包含你所使用的語法,MySQL服務(wù)器不支持你的查詢。在這種情況下,唯一的選擇是自行實(shí)施語法,或發(fā)送電子郵件至<licensing@mysql.com>,并尋求實(shí)施方案。

如果手冊中涵蓋了你所使用的語法,但你使用的是舊版本MySQL服務(wù)器,請檢查MySQL變更史,以查看語法的實(shí)施時間。在這種情況下,可以選擇升級到較新的MySQL服務(wù)器版本。請參見附錄D:MySQL變更史。

·         如果問題在于數(shù)據(jù)崩潰,或訪問特殊表時出錯,首先應(yīng)使用CHECK TABLE和REPAIR TABLE或myisamchk進(jìn)行檢查并嘗試修復(fù)。請參見第5章:數(shù)據(jù)庫管理。

如果你使用的操作系統(tǒng)是Windows,請使用SHOW VARIABLES LIKE 'lower_case_table_names'命令核實(shí)“l(fā)ower_case_table_names”的值。

·         如果經(jīng)常獲得崩潰的表,請嘗試找出發(fā)生的時間和原因。在這種情況下,MySQL數(shù)據(jù)目錄下的錯誤日志可能會包含關(guān)于它的一些信息。(這是名稱中包含.err后綴的文件)。請參見5.11.1節(jié),“錯誤日志”。在你的缺陷報告中,請包含該文件提供的相關(guān)信息。如果在更新期間,未殺死更新進(jìn)程,正常情況下,mysqld不會造成表損壞。如果你能夠找到mysqld停止的原因,我們會更容易地為你提供更正它的補(bǔ)丁。請參見A.1節(jié),“如何確定導(dǎo)致問題的原因”。

·         如果可能,請下載并安裝最新版本的MySQL服務(wù)器,并檢查你的問題是否得到解決。所有版本的MySQL軟件均經(jīng)過徹底測試,并應(yīng)能無故障運(yùn)行。我們致力于盡可能地向后兼容,你也應(yīng)能夠毫不困難地在不同的MySQL版本間進(jìn)行切換。請參見2.1.2節(jié),“選擇要安裝的MySQL分發(fā)版”。

如果你是享受支持服務(wù)的客戶,請將缺陷報告交叉張貼在mysql-support@mysql.com,以獲得更高的優(yōu)先級,并將其張貼到恰當(dāng)?shù)泥]件列表,以查看是否有人遇到了類似問題(或解決了問題)。

關(guān)于通報MyODBC中存在缺陷的更多信息,請參見26.1.1.9節(jié),“如何通報MyODBC問題或缺陷”。

關(guān)于某些常見問題的解決方案,請參見附錄A:問題和常見錯誤。

將答案單獨(dú)發(fā)送給你而不是發(fā)送到郵件列表時,良好的禮節(jié)是,對回答進(jìn)行歸納總結(jié)并將結(jié)果發(fā)送到郵件列表,以便其他人也能從你所收到、并解決了問題的回應(yīng)中受益。

1.7.1.4. 在郵件列表上回答問題的指南
如果你認(rèn)為自己的解答會引起廣泛關(guān)注,可以將其張貼到郵件列表,而不是直接回復(fù)請教的個人。盡量使你的解答具有普遍性,以便除初始發(fā)起人之外的其他人也能從中受益。將解答張貼到郵件列表時,請確認(rèn)你的解答不是已有答案的復(fù)制品。
在你的回復(fù)中,應(yīng)盡量歸納問題的基本部分,沒有必要一定引用全部初始信息。

在要在打開HTML模式的情況下從瀏覽器張貼郵件信息。很多用戶不使用瀏覽器來閱讀郵件。

1.7.2. IRC(在線聊天系統(tǒng))上的MySQL社區(qū)支持
除了各種MySQL郵件列表外,在IRC(在線聊天系統(tǒng))上,也能發(fā)現(xiàn)有經(jīng)驗的社區(qū)成員。以下是目前我們已知的最好的網(wǎng)絡(luò)/渠道:
·         Freenode(請參見http://www.freenode.net/以查找服務(wù)器信息)

o        #mysql,主要針對MySQL問題,也歡迎其他數(shù)據(jù)庫和一般的SQL問題。與MySQL一起使用PHP、Perl或C方面的問題也很常見。

如果你正在尋找URC客戶端軟件,以便連接到IRC網(wǎng)絡(luò),請訪問xChat(http://www.xchat.org/)。X-Chat(GPL許可)即能用于Unix平臺,也適用于Windows平臺(免費(fèi)的面向Windows的X-Chat可從站點(diǎn)http://www.silverex.org/download/上下載)。

1.7.3. MySQL論壇上的MySQL社區(qū)支持
最新的社區(qū)支持資源是位于下述站點(diǎn)的論壇:http://forums.mysql.com。
有各種可用論壇,分為以下大類:

·         移植

·         MySQL用法

·         MySQL連接器

·         編程語言

·         工具

·         第三方應(yīng)用程序

·         存儲引擎

·         MySQL技術(shù)

·         SQL標(biāo)準(zhǔn)

·         業(yè)務(wù)

論壇徽章:
0
10 [報告]
發(fā)表于 2008-04-15 11:36 |只看該作者

1.8. MySQL標(biāo)準(zhǔn)的兼容性

在本節(jié)中,介紹了MySQL與ANSI/ISO SQL標(biāo)準(zhǔn)的關(guān)系。MySQL服務(wù)器有很多對SQL標(biāo)準(zhǔn)的擴(kuò)展之處,這里介紹了它們是什么,以及使用它們的方法。你也能了解關(guān)于MySQL服務(wù)器缺失功能的信息,以及如何處理某些差異的方法。

SQL標(biāo)準(zhǔn)自1986年以來不斷演化發(fā)展,有數(shù)種版本。在本手冊中,“SQL-92”指得是1992年發(fā)布的標(biāo)準(zhǔn),“SQL:1999”指得是1999年發(fā)布的標(biāo)準(zhǔn),“SQL:2003”指得是標(biāo)準(zhǔn)的當(dāng)前版本。我們采用術(shù)語“SQL標(biāo)準(zhǔn)”標(biāo)示SQL標(biāo)準(zhǔn)的當(dāng)前版本。

我們的目標(biāo)是在沒有良好理由的情況下不限制MySQL服務(wù)器的可用性。即使我們沒有足夠的資源就每種可能的應(yīng)用進(jìn)行開發(fā),我們始終愿意幫助那些在新領(lǐng)域使用MySQL服務(wù)器的人員,并向他們提供建議。

對于該產(chǎn)品,我們的一項主要目標(biāo)是,繼續(xù)致力于與SQL標(biāo)準(zhǔn)的兼容性,但不以犧牲速度和可靠性為代價。如果它們能顯著增加擁有大量用戶基數(shù)的MySQL服務(wù)器的可用性,我們無懼于為SQL添加擴(kuò)展,也無懼于為非SQL特性提供支持。MySQL服務(wù)器4.0中的HANDLER接口即是該策略的例子。請參見13.2.3節(jié),“HANDLER語法”。

我們將繼續(xù)支持事務(wù)性和非事務(wù)性數(shù)據(jù)庫,以滿足任務(wù)關(guān)鍵型全天候應(yīng)用,以及高負(fù)載Web或日志應(yīng)用。

MySQL服務(wù)器最初是為小型計算機(jī)系統(tǒng)上中等規(guī)模的數(shù)據(jù)庫設(shè)計的(100萬-1億行,或每個表的大小為100MB)。目前,MySQL服務(wù)器能處理TB級別的數(shù)據(jù)庫,也能在針對便攜式設(shè)備或嵌入式設(shè)備的精簡版本中使用。MySQL服務(wù)器的精簡設(shè)計使得雙向開發(fā)成為可能,不會在源碼樹中產(chǎn)生任何沖突。

目前,我們并未定位于實(shí)時支持,雖說MySQL復(fù)制特性提供了強(qiáng)大的功能。

在眾多第三方簇解決方案中均有數(shù)據(jù)庫簇支持特性,自4.1.2版以來,對于我們所需的NDB簇技術(shù)集成方案,同樣請參見第17章:MySQL簇。

我們也正著手在數(shù)據(jù)庫服務(wù)器中提供XML支持。

1.8.1. MySQL遵從的標(biāo)準(zhǔn)是什么
我們致力于支持全套ANSI/ISO SQL標(biāo)準(zhǔn),但不會以犧牲代碼的速度和質(zhì)量為代價。
ODBC級別0-3.51。

1.8.2. 選擇SQL模式
MySQL服務(wù)器能夠工作在不同的SQL模式下,并能針對不同的客戶端以不同的方式應(yīng)用這些模式。這樣,應(yīng)用程序就能對服務(wù)器操作進(jìn)行量身定制以滿足自己的需求。

這類模式定義了MySQL應(yīng)支持的SQL語法,以及應(yīng)該在數(shù)據(jù)上執(zhí)行何種確認(rèn)檢查。這樣,就能在眾多不同的環(huán)境下、與其他數(shù)據(jù)庫服務(wù)器一起更容易地使用MySQL。

可以使用“--sql-mode="modes"”選項,通過啟動mysqld來設(shè)置默認(rèn)的SQL模式。從MySQL 4.1開始,也能在啟動之后,使用ET [SESSION|GLOBAL] sql_mode='modes'語句,通過設(shè)置sql_mode變量更改模式。

關(guān)于設(shè)置服務(wù)器模式的更多信息,請參見5.3.2節(jié),“SQL服務(wù)器模式”。

1.8.3. 在ANSI模式下運(yùn)行MySQL
你可以使用“--ansi”啟動選項,要求mysqld使用ANSI模式。請參見5.3.1節(jié),“mysqld命令行選項”。

在ANSI模式下運(yùn)行服務(wù)器與使用該選項啟動它的效果一樣(在一行上指定“--sql_mode”值):

--transaction-isolation=SERIALIZABLE--sql-mode=REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE在MySQL 4.1中,能夠用下述兩條語句實(shí)現(xiàn)相同的效果(在一行上指定“sql_mode”值):

SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;SET GLOBAL sql_mode = 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE';請參見1.8.2節(jié),“選擇SQL模式”。

在MySQL 4.1.1中,也能用下述語句設(shè)置sql_mode選項:

SET GLOBAL sql_mode='ansi';在本例中,將sql_mode變量的值設(shè)置為與ANSI模式相關(guān)的所有選項。你可以檢查其結(jié)果,如下所示:

mysql> SET GLOBAL sql_mode='ansi';mysql> SELECT @@global.sql_mode;        -> 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,            IGNORE_SPACE,ANSI';1.8.4. MySQL對標(biāo)準(zhǔn)SQL的擴(kuò)展
MySQL服務(wù)器包含一些其他SQL DBMS中不具備的擴(kuò)展。注意,如果使用了它們,將無法把代碼移植到其他SQL服務(wù)器。在某些情況下,你可以編寫包含MySQL擴(kuò)展的代碼,但仍保持其可移植性,方法是用“/*... */”注釋掉這些擴(kuò)展。在本例中,MySQL服務(wù)器能夠解析并執(zhí)行注釋中的代碼,就像對待其他MySQL語句一樣,但其他SQL服務(wù)器將忽略這些擴(kuò)展。例如:

SELECT /*! STRAIGHT_JOIN */ col_name FROM table1,table2 WHERE ...如果在字符“!”后添加了版本號,僅當(dāng)MySQL的版本等于或高于指定的版本號時才會執(zhí)行注釋中的語法:

CREATE /*!32302 TEMPORARY */ TABLE t (a INT);這意味著,如果你的版本號為3.23.02或更高,MySQL服務(wù)器將使用TEMPORARY關(guān)鍵字。

下面按類別介紹了各種MySQL擴(kuò)展。

·         磁盤上的數(shù)據(jù)組織

MySQL服務(wù)器會將每個數(shù)據(jù)庫映射到MySQL數(shù)據(jù)目錄下的1個目錄中,并將數(shù)據(jù)庫中的表映射到數(shù)據(jù)庫目錄下的文件名。它具有下述含義:

o        如果操作系統(tǒng)的文件名區(qū)分大小寫(如大多數(shù)Unix系統(tǒng)),當(dāng)MySQL服務(wù)器運(yùn)行在這類操作系統(tǒng)上時,數(shù)據(jù)庫名和表名也區(qū)分大小寫。請參見9.2.2節(jié),“識別符大小寫敏感性”。

o        你可以使用標(biāo)準(zhǔn)的系統(tǒng)命令來備份、重命名、移動、刪除、并拷貝由MyISAM或ISAM存儲引擎管理的表。例如,要想重命名MyISAM表,可重命名表對應(yīng)的.MYD、.MYI、以及.frm文件。

數(shù)據(jù)庫、表、索引、列或別名能夠以數(shù)字開頭(但或許不能全部由數(shù)字構(gòu)成)。

·         通用語言語法

o        可以使用“””或“’”括住字符串,而不僅是“’”。

o        在字符串中使用“\”作為轉(zhuǎn)義字符。

o        在SQL語句中,可以使用“db_name.tbl_name”語法訪問不同數(shù)據(jù)庫中的表。某些SQL服務(wù)器提供了相同的功能,但調(diào)用該用戶空間除外。MySQL服務(wù)器不支持表空間,如下述語句中使用的那樣: CREATE TABLE ralph.my_table...IN my_tablespace.

·         SQL語句的語法

o        ANALYZE TABLE,CHECK TABLE,OPTIMIZE TABLE,以及REPAIR TABLE語句。

o        CREATE DATABASE和DROP DATABASE語句。請參見13.1.3節(jié),“CREATE DATABASE語法”。

o        DO語句。

o        EXPLAIN SELECT獲取如何聯(lián)合表的介紹。

o        FLUSH和RESET語句。

o        SET語句。請參見13.5.3節(jié),“SET語法”。

o        SHOW語句。請參見13.5.4節(jié),“SHOW語法”。

o        使用LOAD DATA INFILE。在很多情況下,該語法與Oracle的LOAD DATA INFILE兼容。請參見13.2.5節(jié),“LOAD DATA INFILE語法”。

o        RENAME TABLE的使用。請參見13.1.9節(jié),“RENAME TABLE語法”。

o        使用REPLACE取代DELETE + INSERT。請參見13.2.6節(jié),“REPLACE語法”。

o        在ALTER TABLE語句中使用CHANGE col_name、DROP col_name、或DROP INDEX、IGNORE或RENAME。在ALTER TABLE語句中使用多個ADD、ALTER、DROP或CHANGE子句。請參見13.1.2節(jié),“ALTER TABLE語法”。

o        使用索引名,字段前綴上的索引,并在CREATE TABLE語句中使用INDEX或KEY。請參見13.1.5節(jié),“CREATE TABLE語法”。

o        與CREATE TABLE一起使用TEMPORARY或IF NOT EXISTS。

o        與DROP TABLE一起使用IF EXISTS。

o        使用單個DROP TABLE語句,能夠舍棄多個表。

o        UPDATE和DELETE語句的ORDER BY和LIMIT子句。

o        INSERT INTO ... SET col_name = ... syntax.

o        INSERT和REPLACE語句的DELAYED子句。

o        INSERT、REPLACE、DELETE和UPDATE語句的LOW_PRIORITY子句。

o        在SELECT語句中使用INTO OUTFILE和STRAIGHT_JOIN。請參見13.2.7節(jié),“SELECT語法”。

o        SELECT語句中的SQL_SMALL_RESULT選項。

o        不需要在GROUP BY部分命名所有選擇的列。對于某些十分特殊但相當(dāng)正常的查詢,它能提供更好的性能。請參見12.10節(jié),“與GROUP BY子句同時使用的函數(shù)和修改程序”。

o        可以與GROUP BY一起指定ASC和DESC。

o        能夠在帶有“:=”賦值操作符的語句中設(shè)置變量。

o                     mysql> SELECT @a:=SUM(total),@b=COUNT(*),@a/@b AS avgo                         -> FROM test_table;o                     mysql> SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;·         列類型

o        列類型MEDIUMINT、SET、ENUM、以及不同的BLOB和TEXT類型。

o        列屬性AUTO_INCREMENT、BINARY、NULL、UNSIGNED以及ZEROFILL。

·         函數(shù)和操作符

o        為了使其他SQL環(huán)境下的用戶更容易入手,MySQL服務(wù)器對很多函數(shù)均支持別名特性。例如,所有的字符串函數(shù)均支持標(biāo)準(zhǔn)SQL語法和ODBC語法。

o        MySQL服務(wù)器能夠理解“||”和“&&”操作符,將其當(dāng)作邏輯OR和AND,就像在C編程語言中那樣。在MySQL服務(wù)器中,||和OR是同義詞,&&和AND也是同義詞。由于采用了該優(yōu)異的語法體系,MySQL服務(wù)器不支持SQL針對字符串連接的“||”操作符,而采用了CONCAT()取而代之。由于CONCAT()能夠接受任意數(shù)目的參量,很容易將使用“||”操作符的情況轉(zhuǎn)換為MySQL服務(wù)器支持的類型。

o        請在有多于1個元素的場合下使用COUNT(DISTINCT list)。

o        默認(rèn)情況下,所有的字符串比較均區(qū)分大小寫,其分類順序由當(dāng)前字符集確定(默認(rèn)為cp1252 Latin1)。如果你不喜歡該點(diǎn),應(yīng)使用BINARY屬性或BINARY cast聲明列,這樣,就會使用基本的字符代碼值進(jìn)行比較,而不是詞匯順序。

o        “%”操作符等同于MOD()。也就是說“N % M”等同于MOD(N,M)。Cyuyan的程序員支持“%”,而且它也是為了兼容PostgreSQL而使用的。

o        在列比較中,可在SELECT語句的FROM左側(cè)使用=、<>、<=、<、>=、>、<<、>>、<=>、AND、OR或LIKE操作符。例如:

o                     mysql> SELECT col1=1 AND col2=2 FROM tbl_name;o        返回最近AUTO_INCREMENT值的LAST_INSERT_ID()函數(shù)。請參見12.9.3節(jié),“信息函數(shù)”。

o        允許在數(shù)值列上使用LIKE。

o        REGEXP和NOT REGEXP擴(kuò)展了常規(guī)的表達(dá)式操作符。

o        具有1個或2個以上參量的CONCAT()或CHAR()。(在MySQL服務(wù)器中,這些函數(shù)可以有任意數(shù)目的參量)。

o        BIT_COUNT()、CASE、ELT()、FROM_DAYS()、FORMAT()、IF()、PASSWORD()、ENCRYPT()、MD5()、ENCODE()、DECODE()、PERIOD_ADD()、PERIOD_DIFF()、TO_DAYS()、以及WEEKDAY()函數(shù)。

o        使用TRIM()來調(diào)整子字符串。標(biāo)準(zhǔn)SQL僅支持單個字符的刪除。

GROUP BY函數(shù)STD()、BIT_OR()、BIT_AND()、BIT_XOR()、以及GROUP_CONCAT()。請參見12.10節(jié),“與GROUP BY子句同時使用的函數(shù)和修改程序”。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP