?? manual_introduction.html
字號(hào):
<li>沒有內(nèi)存漏洞。用一個(gè)商用內(nèi)存漏洞監(jiān)測(cè)程序測(cè)試過(<code>purify</code>)。</li>
<li>包括<code>myisamchk</code>,一個(gè)檢查、優(yōu)化和修復(fù)數(shù)據(jù)庫(kù)表的快速實(shí)用程序,詳見<a
HREF="manual_Maintenance.html#Maintenance">13 維護(hù) MySQL安裝</a>。 </li>
<li>全面支持ISO-8859-1 Latin1 字符集。例如,斯堪的納維亞的字符
@ringaccent{a}, @"a and @"o 在表和列名字被允許。</li>
<li>所有數(shù)據(jù)以 ISO-8859-1 Latin1 格式保存。所有正常的字符串比較是忽略大小寫的。</li>
<li>根據(jù) ISO-8859-1 Latin1 字符集進(jìn)行排序(目前瑞典語(yǔ)的方式)。通過在源代碼中增加排序順序數(shù)組可以改變它。為了理解一個(gè)更高級(jí)的排序例子,看一看捷克語(yǔ)的排序代碼。<strong>MySQL</strong>支持可在編譯時(shí)指定的很多不同的字符集。</li>
<li>表和列的別名符合 SQL92 標(biāo)準(zhǔn)。</li>
<li><code>DELETE</code>、<code>INSERT</code>、<code>REPLACE</code>和<code>UPDATE </code>返回有多少行被改變(受影響)。</li>
<li>函數(shù)名不會(huì)與表或列名沖突。例如<code>ABS</code>是一個(gè)有效的列名字。對(duì)函數(shù)調(diào)用的唯一限制是函數(shù)名與隨后的<samp>“(”</samp>不能有空格。詳見<a
HREF="manual_Reference.html#Reserved_words">7.31 MySQL對(duì)保留字很挑剔嗎?</a>。 </li>
<li>所有<strong>MySQL</strong>程序可以用選項(xiàng)<code>--help</code>或<code>-?</code>獲得聯(lián)機(jī)幫助。</li>
<li>服務(wù)器能為客戶提供多種語(yǔ)言的出錯(cuò)消息,詳見<a
HREF="manual_Server.html#Languages">9.1 MySQL支持哪些語(yǔ)言?</a>。 </li>
<li>客戶端使用TCP/IP 連接或Unix套接字(socket)或NT下的命名管道連接<strong>MySQL</strong>。</li>
<li><strong>MySQL</strong>特有的<code>SHOW</code>命令可用來檢索數(shù)據(jù)庫(kù)、表和索引的信息<code>,EXPLAIN</code>命令可用來確定優(yōu)化器如何解決一個(gè)查詢。</li>
</ul>
<p> </p>
<h2><a NAME="Stability" HREF="manual_toc.html#Stability">1.5 MySQL的穩(wěn)定性?</a></h2>
<p>本小節(jié)回答這樣的問題:“<strong>MySQL</strong>的穩(wěn)定程度?”和
“我能在本項(xiàng)目中依賴<strong>MySQL</strong>嗎?”。這里我們將試圖澄清一些問題并且回答似乎很多人關(guān)心的更重要的問題。本節(jié)已經(jīng)與從郵件列表(它在報(bào)導(dǎo)錯(cuò)誤是很活躍的)收集了的信息綜合在一起。</p>
<p>對(duì)TcX,<strong>MySQL</strong>在我們自1996中期開始的計(jì)劃中運(yùn)行沒有發(fā)生任何問題。當(dāng)<strong>MySQL</strong>被更公開地發(fā)布時(shí),我們注意到了有一些 “未測(cè)試代碼”片斷很快地被不同于我們的查詢方式的新用戶發(fā)現(xiàn)。每個(gè)新版本比前一個(gè)都有更少的可移植性問題(盡管每個(gè)發(fā)行有許多新功能),并且我們希望有可能把下一個(gè)版本之一標(biāo)記為“穩(wěn)定”的。</p>
<p>每個(gè)<strong>MySQL</strong>的發(fā)行都是可用的,并且只有當(dāng)用戶使用從“灰色地帶”來的代碼時(shí)才有問題,當(dāng)然,不知情的用戶不能知道灰色地帶是什么;本小節(jié)嘗試揭示我們目前已知的東西。這里的描述涉及<strong>MySQL</strong>
3. 22.x 版本。所有已知和報(bào)告的錯(cuò)誤都會(huì)在最新的版本被更正,除了在錯(cuò)誤小節(jié)中列出的與“設(shè)計(jì)n”有關(guān)的錯(cuò)誤。詳見<a
HREF="manual_Bugs.html#Bugs">E MySQL已知的錯(cuò)誤和設(shè)計(jì)缺陷</a>。</p>
<p><strong>MySQL</strong>以多層結(jié)構(gòu)和不同的獨(dú)立模塊編寫,這些模塊列舉在下面以表明它們中的每一個(gè)是如何很好地被測(cè)試過:
<dl COMPACT>
<dt><strong>ISAM表處理器--穩(wěn)定</strong></dt>
<dd>它管理所有在<strong>MySQL</strong> 3.22和早期版本中的數(shù)據(jù)的存儲(chǔ)和檢索。在所有<strong>MySQL</strong>版本中,代碼中已經(jīng)沒有一個(gè)單獨(dú)(報(bào)告的)錯(cuò)誤。得到一個(gè)損壞的數(shù)據(jù)庫(kù)表的唯一已知方法是在一個(gè)更新中途殺死服務(wù)器,即使這樣也不大可能破壞任何數(shù)據(jù)而不能挽救,因?yàn)樗袛?shù)據(jù)在每個(gè)查詢之間被倒入(flush)到磁盤,而且從來沒有一個(gè)有關(guān)由于<strong>MySQL</strong>中的錯(cuò)誤而丟失數(shù)據(jù)的錯(cuò)誤報(bào)告。</dd>
<dt><strong>MyISAM 表處理器-- Beta </strong></dt>
<dd>這是<strong> MySQL </strong>3.23的新功能,它大部分是基于ISAM表代碼但有很多新的有用的功能。</dd>
<dt><strong>語(yǔ)法處理器和詞法分析器 --穩(wěn)定</strong></dt>
<dd>很長(zhǎng)時(shí)間沒有一個(gè)在這個(gè)系統(tǒng)中的錯(cuò)誤報(bào)告。</dd>
<dt><strong>C 客戶代碼--穩(wěn)定</strong></dt>
<dd>沒有已知的問題。在早期的 3. 20版本中,在發(fā)送/接收緩沖器的大小上有一些限制。 3.21.x后,現(xiàn)在緩沖器的大小是動(dòng)態(tài)的,可到一個(gè)24M的缺省值。</dd>
<dt><strong>標(biāo)準(zhǔn)客戶程序--穩(wěn)定</strong></dt>
<dd>這些包括<code>mysql</code>、<code>mysqladmin</code>和<code>mysqlshow</code>、<code>mysqldump</code>及<code>mysqlimport</code>。
</dd>
<dt><strong>基本結(jié)構(gòu)式查詢語(yǔ)言--穩(wěn)定</strong></dt>
<dd>基本SQL函數(shù)系統(tǒng)、字符串類和動(dòng)態(tài)內(nèi)存處理,本系統(tǒng)中未見單獨(dú)報(bào)告的錯(cuò)誤。</dd>
<dt><strong>查詢優(yōu)化程序--穩(wěn)定</strong></dt>
<dd> </dd>
<dt><strong>范圍優(yōu)化程序-- Gamma </strong></dt>
<dd> </dd>
<dt><strong>Join優(yōu)化器--穩(wěn)定</strong></dt>
<dd> </dd>
<dt><strong>鎖定-- Gamma </strong></dt>
<dd>這是非常依賴于系統(tǒng)的,在某些系統(tǒng)上,用標(biāo)準(zhǔn)操作系統(tǒng)鎖定(<code>fcntl()</code>)有很大問題,在這些情況下,你應(yīng)該用選項(xiàng)<code>--skip-locking</code>運(yùn)行<strong>MySQL</strong>守護(hù)程序。當(dāng)使用NFS掛載的文件系統(tǒng),已知在一些 Linux 系統(tǒng)上和SunOS上出現(xiàn)問題。</dd>
<dt><strong>Linux 線程-- Gamma </strong></dt>
<dd>唯一發(fā)現(xiàn)的問題式<code>fcntl()</code>調(diào)用,它通過使用<code>mysqld</code>的<code>--skip-locking</code>選項(xiàng)解決。一些人已經(jīng)報(bào)告了0.5版中的鎖定問題。</dd>
<dt><strong>Solaris 2.5 + pthreads --穩(wěn)定</strong></dt>
<dd>我們?cè)谖覀兊拈_發(fā)工作中使用。</dd>
<dt><strong>MIT-pthreads (其他系統(tǒng))-- Gamma </strong></dt>
<dd>自從 3.20.15版以來,沒有報(bào)告的錯(cuò)誤,而且從3.20.16開始沒有已知的錯(cuò)誤。在一些系統(tǒng)上,在一些操作是相當(dāng)慢時(shí)(在每查詢之間有 1/20秒的睡眠 )有一個(gè)“功能失效”。當(dāng)然,MIT-pthreads 可能使任何事情慢一點(diǎn),但是基于索引<code>的SELECT</code>語(yǔ)句通常在一個(gè)時(shí)幀內(nèi)完成,因此不應(yīng)該有一個(gè)mutex 鎖定/線程的把戲。</dd>
<dt><strong>其他線程實(shí)現(xiàn) -- Alpha - Beta </strong></dt>
<dd>移植到其他系統(tǒng)仍然是很新的并且可能有錯(cuò)誤,可能是在<strong>MySQL</strong>中,但是最通常的是線程實(shí)現(xiàn)本身。</dd>
<dt><strong><code>LOAD DATA ... </code>,<code>INSERT ... SELECT </code>--穩(wěn)定</strong></dt>
<dd>一些人已經(jīng)認(rèn)為他們?cè)谶@里發(fā)現(xiàn)了錯(cuò)誤,但是這些經(jīng)常多是誤解。請(qǐng)?jiān)趫?bào)告問題前檢查手冊(cè)!</dd>
<dt><strong><code>ALTER TABLE </code>--穩(wěn)定</strong></dt>
<dd>在 3.22.12中有小的改變。</dd>
<dt><strong>DBD --穩(wěn)定</strong></dt>
<dd>現(xiàn)在由 Jochen Wiedmann 維護(hù)了。</dd>
<dt><strong><code>mysqlaccess</code> --穩(wěn)定</strong></dt>
<dd>由 Yves Carlier 編寫并維護(hù)。</dd>
<dt><strong><code>GRANT </code>-- Gamma </strong></dt>
<dd><strong>MySQL </strong>3.22.12.做了很大改變。</dd>
<dt><strong><strong>MyODBC </strong>(使用 ODBC SDK 2.5 )-- Gamma </strong></dt>
<dd>它與一些程序似乎工作得很好。</dd>
</dl>
<p>TcX 為付費(fèi)客戶提供電子郵件的支持,但是<strong>MySQL</strong>郵件列表通常提供常見問題的答案,錯(cuò)誤通常馬上用一個(gè)補(bǔ)丁修補(bǔ),對(duì)嚴(yán)重的錯(cuò)誤,幾乎總是有新的版本發(fā)行。</p>
<p><a NAME="IDX7"></a></p>
<h2><a NAME="Year_2000_compliance" HREF="manual_toc.html#Year_2000_compliance">1.6 順應(yīng)2000年(Year
2000 compliance)</a></h2>
<p><strong>MySQL</strong>本身己沒有2000年有問題( Y2K ):
<ul>
<li><strong>MySQL</strong>使用Unix時(shí)間函數(shù)并且在<code>2069</code>年前沒有日期問題,
所有2位年份被認(rèn)為在<code>1970</code>年到<code>2069</code>年的范圍,這意味著如果在一個(gè)<code>year</code>類型的列中存儲(chǔ)的01,<strong>MySQL</strong>把它當(dāng)作<code>2001</code>。
</li>
<li>所有<strong>MySQL</strong>日期函數(shù)存儲(chǔ)在一個(gè)文件<tt>'sql/time.cc'中</tt>,并且很仔細(xì)地編碼保證是2000年安全的 。</li>
<li><strong>MySQL</strong> 3.22 和以后的版本,新的<code>YEAR</code>類型的列能在一個(gè)字節(jié)中存儲(chǔ)0年和<code>1901年</code>到<code>2155年</code>,并用使用2或4位顯示它們。</li>
</ul>
<p>你可以用一種不是Y2K-safe的方式使用<strong> MySQL</strong>應(yīng)用程序來深入該問題。例如,許多老的應(yīng)用程序使用2位數(shù)字(它有二義性)而非4位數(shù)字存儲(chǔ)或操作年份,這個(gè)問題可能與使用諸如<code>00</code>或<code>99</code>作為“丟失的”值的提示的應(yīng)用程序混淆起來。</p>
<p>很不幸,這些問題可能很難修復(fù),因?yàn)椴煌膽?yīng)用程序可能由不同程序員編寫,其中每一個(gè)可能使用了不同的約定和日期處理函數(shù)。</p>
<p>這里是簡(jiǎn)單的示范,顯示<strong>MySQL</strong>在 2030 年之前沒有任何日期問題。</p>
<pre>mysql> DROP TABLE IF EXISTS y2k;
mysql> CREATE TABLE y2k (date date, date_time datetime, time_stamp timestamp);
mysql> INSERT INTO y2k VALUES ("1998-12-31","1998-12-31 23:59:59",19981231235959);
mysql> INSERT INTO y2k VALUES ("1999-01-01","1999-01-01 00:00:00",19990101000000);
mysql> INSERT INTO y2k VALUES ("1999-09-09","1999-09-09 23:59:59",19990909235959);
mysql> INSERT INTO y2k VALUES ("2000-01-01","2000-01-01 00:00:00",20000101000000);
mysql> INSERT INTO y2k VALUES ("2000-02-28","2000-02-28 00:00:00",20000228000000);
mysql> INSERT INTO y2k VALUES ("2000-02-29","2000-02-29 00:00:00",20000229000000);
mysql> INSERT INTO y2k VALUES ("2000-03-01","2000-03-01 00:00:00",20000301000000);
mysql> INSERT INTO y2k VALUES ("2000-12-31","2000-12-31 23:59:59",20001231235959);
mysql> INSERT INTO y2k VALUES ("2001-01-01","2001-01-01 00:00:00",20010101000000);
mysql> INSERT INTO y2k VALUES ("2004-12-31","2004-12-31 23:59:59",20041231235959);
mysql> INSERT INTO y2k VALUES ("2005-01-01","2005-01-01 00:00:00",20050101000000);
mysql> INSERT INTO y2k VALUES ("2030-01-01","2030-01-01 00:00:00",20300101000000);
mysql> INSERT INTO y2k VALUES ("2050-01-01","2050-01-01 00:00:00",20500101000000);
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 |
| 2050-01-01 | 2050-01-01 00:00:00 | 00000000000000 |
+------------+---------------------+----------------+
13 rows in set (0.00 sec)
</pre>
<p>這表示<code>DATE</code>和<code>DATETIME</code>類型將不會(huì)有未來日期的任何問題(它們處理日期到 9999 )。</p>
<p><code>TIMESTAMP</code>類型被用來存儲(chǔ)當(dāng)前時(shí)間,有一個(gè)僅<code>2030-01-01</code>的上限。<code>TIMESTAMP</code>在32位的機(jī)器上(有符號(hào)值)有一個(gè)從<code>1970</code>到<code>2030</code>的范圍,在64位機(jī)器上它處理時(shí)間可達(dá)<code>2106</code>(無符號(hào)值)。</p>
<p>盡管<strong>MySQL</strong>是順應(yīng)Y2K的,但提供無二義性的輸入是你的責(zé)任。對(duì)于<strong>MySQL</strong>處理二義性日期的輸入(包含2位數(shù)字年份)的規(guī)則,詳見<a
HREF="manual_Reference.html#Y2K_issues">7.3.6.1 Y2K 問題和日期類型</a>。</p>
<a NAME="General-SQL" HREF="manual_toc.html#General-SQL">
<h2>1.7 SQL一般信息和教程</a></h2>
<p>在<strong>MySQL</strong>郵件列表上,這本書被多人推薦:</p>
<pre>Judith S. Bowman, Sandra L. Emerson and Marcy Darnovsky
The Practical SQL Handbook: Using Structured Query Language
Second Edition
Addison-Wesley
ISBN 0-201-62623-3
http://www.awl.com</pre>
<p>這本書也接受了 MySQL 用戶的一些建議:</p>
<pre>Martin Gruber
Understanding SQL
ISBN 0-89588-644-8
Publisher Sybex 510 523 8233
Alameda, CA USA
</pre>
<p>一本SQL語(yǔ)言教程可在 http://www.geocities.com/SiliconValley/Vista/2207/sql1.html 找到。</p>
<p>SQL in 21 Tagen (用德語(yǔ)寫的網(wǎng)上書籍) http://www.mut.de/leseecke/buecher/sql/inhalt.htm 。</p>
<a NAME="Useful_Links" HREF="manual_toc.html#Useful_Links">
<h2>1.8 有用的MySQL相關(guān)鏈接</a> </h2>
<h3>1.8.1 教程</h3>
<ul>
<li><a href="http://www.devshed.com/resource/advanced/mysql/index.html">A beginner's tutoral
of how to start using <strong> MySQL </strong></a></li>
<li><a href="http://www.analysisandsolutions.com/code/mybasic.htm">http://www.analysisandsolutions.com/code/mybasic.htm
</a>新手如何在一臺(tái)Windows 機(jī)器上安裝和設(shè)置<strong>MySQL</strong>。</li>
<li><a href="http://www.devshed.com/Server_Side/MySQL/default.htm">很多<strong>MySQL</strong>教程</a></li>
<li><a href="http://www.linuxplanet.com/linuxplanet/tutorials/1046/1/default.htm">建立一個(gè)基于 MySQL的網(wǎng)站</a></li>
<li><a href="http://www.hotwired.com/webmonkey/backend/tutorials/tutorial1.html"><strong>MySQL</strong>- perl 教程</a></li>
<li><a href="http://www.hotwired.com/webmonkey/databases/tutorials/tutorial4.html">PHP/MySQL 教程</a></li>
</ul>
<h3>1.8.2 Perl相關(guān)鏈接</h3>
<ul>
<li><a href="http://haven.e-cactus.com/dbi_mysql">MySQL 的Perl DBI FAQ </a></li>
</ul>
<h3>1.8.3 MySQL 討論論壇</h3>
<ul>
<li><a href="http://webdev.weberdev.com/default.htm">使用<strong>MySQL</strong>實(shí)例
(check Top 20)</a></li>
</ul>
<h3>1.8.4 支持 MySQL 的商業(yè)應(yīng)用</h3>
<ul>
<li><a href="http://www.supportwizard.com/default.htm">SupportWizard; Interactive helpdesk
on the web (This product includes a licensed copy of MySQL)</a></li>
<li><a href="http://www.rightnowtech.com/default.htm">Right Now Web; Web automation for
customer service</a></li>
<li><a href="http://www.icaap.org/Bazaar/default.htm">Bazaar; Interactive Discussion Forums
with web interface</a></li>
<li><a href="http://www.phonesweep.com/default.htm">PhoneSweepT </a>
是世界的第一個(gè)商業(yè)電話掃描儀.近年來的很多侵入不是通過因特網(wǎng),而是通過非法的撥號(hào)調(diào)制解調(diào)器. PhoneSweep 讓你通過循環(huán)地將電話發(fā)到你的公司控制的每個(gè)號(hào)碼上來發(fā)現(xiàn)這些調(diào)制解調(diào)器, PhoneSweep有一個(gè)內(nèi)置的專家系統(tǒng),能識(shí)別出超過 250 種不同類型的遙遠(yuǎn)存取程序,包括Carbon
CopyT 、pcANYWHERET 和 Windows NT RAS .所有信息保存在SQL數(shù)據(jù)庫(kù),最后產(chǎn)生一份詳細(xì)易懂的報(bào)告,說明你公司內(nèi)那個(gè)撥號(hào)調(diào)制解調(diào)器的那項(xiàng)服務(wù)被刺探。</li>
</ul>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -