freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

深入mysql數(shù)據(jù)庫開發(fā)、優(yōu)化與管理維護(hù)-資料下載頁

2024-11-13 16:53本頁面
  

【正文】 項(xiàng)語法時(shí),可以使用關(guān) 鍵字進(jìn)行快速查詢。例如,我想知道 show 命令都能看些什么東西,可以用如下命令: mysql ? show Name: 39。SHOW39。 Description: SHOW has many forms that provide information about databases, tables, columns, or status information about the server. This section describes those following: SHOW AUTHORS SHOW CHARACTER SET [LIKE 39。pattern39。] SHOW COLLATION [LIKE 39。pattern39。] SHOW [FULL] COLUMNS FROM tbl_name [FROM db_name] [LIKE 39。pattern39。] SHOW CONTRIBUTORS SHOW CREATE DATABASE db_name SHOW CREATE EVENT event_name SHOW CREATE FUNCTION funame 。 我想知道 create table 的語法,可以命令如下: mysql ? create table Name: 39。CREATE TABLE39。 Description: Syntax: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) 網(wǎng)易技術(shù)部 11 [table_option ...] [partition_options] Or: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_option ...] [partition_options] select_statement 、 。 第 2章 表類型(存儲(chǔ)引擎)的選擇 Mysql 存儲(chǔ)引擎概述 mysql支持多種存儲(chǔ)引擎,在處理不同類型的應(yīng)用時(shí),可以通過選擇使用不同的存儲(chǔ)引擎提高應(yīng)用的效率,或者提供靈活的存儲(chǔ)。 mysql的存儲(chǔ)引擎包括: MyISAM、 InnoDB、 BDB、 MEMORY、 MERGE、 EXAMPLE、 NDB Cluster、ARCHIVE、 CSV、 BLACKHOLE、 FEDERATED等,其中 InnoDB和 BDB提供事務(wù)安全表,其他存儲(chǔ)引擎都是非事務(wù)安全表。 各種存儲(chǔ)引擎的特性 下面我們重點(diǎn)介紹幾種常用的存儲(chǔ)引擎并對(duì)比各個(gè)存儲(chǔ)引擎之間的區(qū)別和推薦使用方式。 特點(diǎn) Myisam BDB Memory InnoDB Archive 存儲(chǔ)限制 沒有 沒有 有 64TB 沒有 事務(wù)安全 支持 支持 鎖機(jī)制 表鎖 頁鎖 表鎖 行鎖 行鎖 網(wǎng)易技術(shù)部 12 B樹索引 支持 支持 支持 支持 哈希索引 支持 支持 全 文索引 支持 集群索引 支持 數(shù)據(jù)緩存 支持 支持 索引緩存 支持 支持 支持 數(shù)據(jù)可壓縮 支持 支持 空間使用 低 低 N/A 高 非常低 內(nèi)存使用 低 低 中等 高 低 批量插入的速度 高 高 高 低 非常高 支持外鍵 支持 最常使用的 2種存儲(chǔ)引擎 : 1. Myisam是 Mysql的默認(rèn)存儲(chǔ)引擎,當(dāng) create創(chuàng)建新表時(shí),未指定新表的存儲(chǔ)引擎時(shí),默認(rèn)使用 Myisam。 每個(gè) MyISAM在磁盤上存儲(chǔ)成三個(gè)文件。文件名都和表名相同,擴(kuò)展名分別是 .frm( 存儲(chǔ)表定義)、 .MYD (MYData,存儲(chǔ)數(shù)據(jù) )、 .MYI (MYIndex,存儲(chǔ)索引 )。數(shù)據(jù)文件和索引文件可以放置在不同的目錄,平均分布 io,獲得更快的速度。 2. InnoDB存儲(chǔ)引擎 提供了具有提交 、 回滾和崩潰恢復(fù)能力的事務(wù)安全。 但是對(duì)比 Myisam的存儲(chǔ)引擎, InnoDB 寫的處理效率差一些并且會(huì)占用更多的磁盤空間以保留數(shù)據(jù)和索引。 如何選擇合適的存儲(chǔ)引擎 選擇標(biāo)準(zhǔn) : 根據(jù)應(yīng)用特點(diǎn)選擇合適的存儲(chǔ)引擎 ,對(duì)于復(fù)雜的應(yīng)用系統(tǒng)可以根據(jù)實(shí)際情況選擇多種存儲(chǔ)引擎進(jìn)行組合 . 下面是常用存儲(chǔ)引擎的適用環(huán)境 : 1. MyISAM:默認(rèn)的 MySQL插件式存儲(chǔ)引擎,它是在 Web、數(shù)據(jù)倉儲(chǔ)和其他應(yīng)用環(huán)境下最常使用的存儲(chǔ)引擎之一 2. InnoDB:用于事務(wù)處理應(yīng)用程序,具有眾多特性,包括 ACID事務(wù)支持。 網(wǎng)易技術(shù)部 13 3. Memory:將所有數(shù)據(jù)保存在 RAM中,在需要快速查找引用和其他類似數(shù)據(jù)的環(huán)境下,可提供極快的訪問。 4. Merge:允許 MySQL DBA或開發(fā)人員將一系列等同的 MyISAM表以邏輯方式組合在一起,并作為 1個(gè)對(duì)象引用它們。對(duì)于諸如數(shù)據(jù)倉儲(chǔ)等 VLDB環(huán)境十分適合。 第 3章 選擇合適的數(shù)據(jù)類型 選擇數(shù)據(jù)類型的基本原則 前提 : 使用適合存儲(chǔ)引擎 。 選 擇原則 : 根據(jù)選定的 存儲(chǔ)引擎 ,確定如何選擇合適的數(shù)據(jù)類型 下面的選擇方法按存儲(chǔ)引擎分類 : 1. MyISAM 數(shù)據(jù)存儲(chǔ)引擎和數(shù)據(jù)列 MyISAM數(shù)據(jù)表,最好使用固定長(zhǎng)度的數(shù)據(jù)列代替可變長(zhǎng)度的數(shù)據(jù)列。 2. MEMORY存儲(chǔ)引擎和數(shù)據(jù)列 MEMORY數(shù)據(jù)表目前都使用固定長(zhǎng)度的數(shù)據(jù)行存儲(chǔ),因此無論使用 CHAR或 VARCHAR列都沒有關(guān)系。兩者都是作為 CHAR類型處理的。 3. InnoDB 存儲(chǔ)引擎和數(shù)據(jù)列 建議使用 VARCHAR類型 對(duì)于 InnoDB數(shù)據(jù)表,內(nèi)部的行存儲(chǔ)格式?jīng)]有區(qū)分固定長(zhǎng)度和可變長(zhǎng)度列(所有數(shù)據(jù)行都使用指向 數(shù)據(jù)列值的頭指針),因此在本質(zhì)上,使用固定長(zhǎng)度的 CHAR列不一定比使用可變長(zhǎng)度 VARCHAR列簡(jiǎn)單。因而,主要的性能因素是數(shù)據(jù)行使用的存儲(chǔ)總量。由于 CHAR平均占用的空間多于 VARCHAR,因 此使用 VARCHAR來最小化需要處理的數(shù)據(jù)行的存儲(chǔ)總量和磁盤 I/O是比較好的。 固定長(zhǎng)度數(shù)據(jù)列與可變長(zhǎng)度的數(shù)據(jù)列 char 與 varchar ? CHAR和 VARCHAR類型類似,但它們保存和檢索的方式不同。它們的最大長(zhǎng)度和是否尾部空格被保留等方面也不同。在存儲(chǔ)或檢索過程中不進(jìn)行大小寫轉(zhuǎn)換。 網(wǎng)易技術(shù)部 14 下面的表顯示了將各種字符串值 保存到 CHAR(4)和 VARCHAR(4)列后的結(jié)果,說明了 CHAR和VARCHAR之間的差別: 值 CHAR(4) 存儲(chǔ)需求 VARCHAR(4) 存儲(chǔ)需求 39。39。 39。 39。 4個(gè)字節(jié) 39。39。 1個(gè)字節(jié) 39。ab39。 39。ab 39。 4個(gè)字節(jié) 39。ab 39。 3個(gè)字節(jié) 39。abcd39。 39。abcd39。 4個(gè)字節(jié) 39。abcd39。 5個(gè)字節(jié) 39。abcdefgh39。 39。abcd39。 4個(gè)字節(jié) 39。abcd39。 5個(gè)字節(jié) 請(qǐng)注意上表中最后一行的值只適用 不使用嚴(yán)格模式 時(shí);如果 MySQL運(yùn)行在嚴(yán)格模式,超過列長(zhǎng)度不的值 不 保存 ,并且會(huì) 出現(xiàn)錯(cuò)誤。 從 CHAR(4)和 VARCHAR(4)列檢索的值并不總是相同,因?yàn)闄z索時(shí)從 CHAR列刪除了尾部的空格。通過下面的例子說明該差別: mysql CREATE TABLE vc (v VARCHAR(4), c CHAR(4))。 Query OK, 0 rows affected ( sec) mysql INSERT INTO vc VALUES (39。ab 39。, 39。ab 39。)。 Query OK, 1 row affected ( sec) mysql SELECT CONCAT(v, 39。+39。), CONCAT(c, 39。+39。) FROM vc。 +++ | CONCAT(v, 39。+39。) | CONCAT(c, 39。+39。) | +++ | ab + | ab+ | +++ 1 row in set ( sec) 網(wǎng)易技術(shù)部 15 text 和 blob 在使用 text和 blob字段類型時(shí)要注意以下幾點(diǎn) ,以便更好的發(fā)揮數(shù)據(jù)庫的性能 . 1. BLOB和 TEXT值也會(huì)引起自己的一些問題,特別是執(zhí)行了大量的刪除或更新操作的時(shí)候。刪除這種值會(huì)在數(shù)據(jù)表中留下很大的 空洞 ,以后填入這些 空洞 的記錄可能長(zhǎng)度不同 ,為了提高性能 ,建議定期使用 OPTIMIZE TABLE 功能對(duì)這類表進(jìn)行碎片整理 . 2. 使用合成的( synthetic)索引。 合成的索引列在某些時(shí)候是有用的。一種辦法是根據(jù)其它的列的內(nèi)容建立一個(gè)散列值,并把這個(gè)值存儲(chǔ)在單獨(dú)的數(shù)據(jù)列中。接下來你就可以通過檢索散列值找到 數(shù)據(jù)行了。但是,我們要注意這種技術(shù)只能用于精確匹配的查詢(散列值對(duì)于類似 或 =等范圍搜索操作符 是沒有用處的)。我們可以使用 MD5()函數(shù)生成散列值,也可以使用 SHA1()或 CRC32(),或者使用自己的應(yīng)用程序邏輯來計(jì)算散列值。請(qǐng)記住數(shù)值型散列值可以很高效率地存儲(chǔ)。同樣,如果散列算法生成的字符串帶有尾部空格,就不要把它們存儲(chǔ)在 CHAR或 VARCHAR列中,它們會(huì)受到尾部空格去除的影響。 合成的散列索引對(duì)于那些 BLOB或 TEXT數(shù)據(jù)列特別有用。用散列標(biāo)識(shí)符值查找的速度比搜索 BLOB列本身的速度快很多 。 3. 在不必要的時(shí)候避免檢索大型的 BLOB或 TEXT值。 例如, SELECT *查詢就不是很好的想法,除非你能夠確定作為約束條件的 WHERE子句只會(huì)找到所需要的數(shù)據(jù)行。否則,你可能毫無目的地在網(wǎng)絡(luò)上傳輸大量的值。這也是 BLOB或 TEXT標(biāo)識(shí)符信息存儲(chǔ)在合成的索引列中對(duì)我們有所幫助的例子。你可以搜索索引列,決定那些需要的數(shù)據(jù)行,然后從合格的數(shù)據(jù)行中檢索 BLOB或 TEXT值。 4. 把 BLOB或 TEXT列分離到單獨(dú)的表中。 在某些環(huán)境中,如果把這些數(shù)據(jù)列移動(dòng)到第二張數(shù)據(jù)表中,可以讓你把原數(shù)據(jù)表中 的數(shù)據(jù)列轉(zhuǎn)換為固定長(zhǎng)度 的數(shù)據(jù)行格式,那么它就是有意義的。這會(huì)減少主表中的碎片,使你得到固定長(zhǎng)度數(shù)據(jù)行的性能優(yōu)勢(shì)。它還使你在主數(shù)據(jù)表上運(yùn)行 SELECT *查詢的時(shí)候不會(huì)通過網(wǎng)絡(luò)傳輸大量的 BLOB或 TEXT值。 浮點(diǎn)數(shù)與定點(diǎn)數(shù) 為了能夠引起大家的重視,在介紹浮點(diǎn)數(shù)與定點(diǎn)數(shù)以前先讓大家看一個(gè)例子: mysql CREATE TABLE test (c1 float(10,2),c2 decimal(10,2))。 Query OK, 0 rows affected ( sec) 網(wǎng)易技術(shù)部 16 mysql insert into test values(,)。 Query OK, 1 row affected ( sec) mysql select * from test。 +++ | c1 | c2 | +++ | | | +++ 1 row in set ( sec) 從上面的例子中我 們看到 c1 列的值由 變成了 ,這就是浮點(diǎn)數(shù)的不精確性造成的。 在 mysql中 float、 double(或 real)是浮點(diǎn)數(shù), decimal(或 numberic)是定點(diǎn)數(shù)。 浮點(diǎn)數(shù)相對(duì)于定點(diǎn)數(shù)的優(yōu)點(diǎn)是在長(zhǎng)度一定的情況下,浮點(diǎn)數(shù)能夠表示更大的數(shù)據(jù)范圍;它的缺點(diǎn)是會(huì)引起精度問題。 在今后關(guān)于浮點(diǎn)數(shù)和定點(diǎn)數(shù)的應(yīng)用中,大家要記住以下幾點(diǎn): 浮點(diǎn)數(shù)存在誤差問題; 對(duì)貨幣等對(duì)精度敏感的數(shù)據(jù),應(yīng)該用定點(diǎn)數(shù)表示或存儲(chǔ); 編程中,如果用到浮點(diǎn)數(shù),要特別注意誤差問題, 并盡量避免做浮點(diǎn)數(shù)比較; 要注意浮點(diǎn)數(shù)中一些特殊值的處理。 第 4章 字符集 字符集概述 字符集是一套符號(hào)和編碼的規(guī)則,不論是在 oracle 數(shù)據(jù)庫還是在 mysql 數(shù)據(jù)庫,都存在字符集的選擇問題,而且如果在數(shù)據(jù)庫創(chuàng)建階段沒有正確選擇字符集,那么可能在后期需要更換字符集,而字符集的更換是代價(jià)比較高的操作,也存在一定的風(fēng)險(xiǎn),所以,我們推薦在應(yīng)用開始階段,就按照需求正確的選擇合適的字符集,避免后期不必要的調(diào)整。 網(wǎng)易技術(shù)部 17 Mysql 支持的字符集簡(jiǎn)介 mysql服務(wù)器可以支持多種字符集(可以用 show character set命令查看所有 mysql支持的字符集),在同一臺(tái)服務(wù)器、同一個(gè)數(shù)據(jù)庫、甚至同一個(gè)表的不同字
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1