全國資料庫應用技能測驗MySQL 5模擬試題第三回

這是MySQL 5實力養成暨評量裡的全國資料庫應用技能測驗MySQL 5模擬試題第三回,ㄚ琪試著檢驗自己的MySQL 5的功力如何,這次的成績是88分,在下午很想昏睡之餘,有這樣的成績還頗滿意的,不過若不是如此,我們怎能妄自參加認證測驗呢?

06.『下列關聯式資料庫的敘述,何項是正確的?』

答案:(C)不需依賴欄位內容排序來儲存資料

我回答的是(A)一個資料表(table)是由許多欄位組成的,現在看起來(C)確實沒錯,看來疲累的狀況下,很容易失神。

45.『建立預儲程序使用者需要下列何項權限』

答案:(C) Create Routine

我答(B),這一題應該可以不用錯的,請回顧MySQL預儲程序這裡的分享。

47.『下列哪一種儲存引擎會接受指令但不存資料,搜尋資料時均回傳空集合,其功能被使用在資料會自動複製但不在本地端儲存的分散式資料庫設計?』

答案:(A) Blackhole

我答(C),這種進階題只好棄械了,Blackhole雖然在MySQL叢集有稍微題到,但應該不是很詳細,我們可以詳讀MySQL 5.5 Reference Manual :: 14 Storage Engines :: 14.9 The BLACKHOLE Storage Engine 或是 MySQL 5.1参考手册 :: 15. 存储引擎和表类型::15.10.BLACKHOLE存储引擎

轉譯繁體中文於下:

BLACKHOLE儲存引擎就像“黑洞”一樣,它接收資料但丟棄它而不是儲存它。取回總是返回空集:

mysql> CREATE TABLE test(i INT, c CHAR(10)) ENGINE = BLACKHOLE;
Query OK, 0 rows affected (0.03 sec)

mysql> INSERT INTO test VALUES(1,'record one'),(2,'record two');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM test;
Empty set (0.00 sec)

當您建立一個BLACKHOLE資料表的時候,伺服器在資料庫目錄建立一個資料表定義檔案。檔案用資料表的名字開頭,並且有一個.frm延伸名。沒有其它檔案關聯到這個資料表格。

BLACKHOLE儲存引擎支援所有種類的索引。

要允許這個儲存引擎,在您建立MySQL之時使用–with-blackhole-storage-engine選項來configure。BLACKHOLE儲存引擎在MySQ供應的伺服器二進製版裡可以找到;通過查看SHOW ENGINES或SHOW VARIABLES LIKE ‘have%’的輸出,您可以確定您的版本是否支援這個引擎。

到BLACKHOLE資料表的插入不儲存任何資料,但如果二進制日誌被允許,SQL語句被寫入日誌(並被複製到從伺服器)。這可以有用幫助地作為重複器或過濾器機制。例如,假設您的應用需要從伺服器側的過濾規則,但傳輸所有二進制日誌資料到從伺服器首先導致過多交通的結果。在這種情況下,在主伺服器主機上建立一個偽從伺服器程序,它的儲存引擎是BLACKHOLE,描述如下:

Replication using BLACKHOLE for filtering

主伺服器寫它的二進制日誌。偽mysqld程序作為從伺服器,應用期望的replicate-do和replicate-ignore規則的合併,並且寫一個新的,被過濾的屬於它自己的二進制日誌 。(請參閱6.8節,「複製啟動選項”)。這個已過濾日誌被提供給從伺服器。

既然偽程序不確實地儲存任何資料,只有很小的由在複製主伺服器主機上額外的mysqld程序招致的處理開支。這個類型的建立可以用額外複製從伺服器來重複。

其它可能對BLACKHOLE儲存引擎的使用包括:

·         轉儲檔案語法的驗證。

·         來自二進制日誌記錄的開銷測量,通過比較允許二進制日誌功能的BLACKHOLE的性能與禁止二進制日誌功能的BLACKHOLE的性能。

·         因為BLACKHOLE本質上是一個“no-op” 儲存引擎,它可能被用來搜尋與儲存引擎自身不相關的性能瓶頸。

48.『下列哪一種引擎是不作處理的空殼引擎,可以建立資料表,但無法儲存和擷取資料,目的在於提供MySQL原始程式一個如何寫入新儲存引擎的範例?』

答案:(B) Example

這更進階了,還有這一招,ㄚ琪不懂只好答(A)了,大家一樣可以參閱MySQL 5.5 Reference Manual :: 14 Storage Engines :: 14.12 The EXAMPLE Storage Engine 或 15.6. EXAMPLE存储引擎

轉譯繁體中文於下:

EXAMPLE儲存引擎是一個不做任何事情的存根引擎。它的目的是作為MySQL原始程式中的一個例子,用來演示如何開始編寫一個新儲存引擎。 同樣,它的主要興趣是對開發者。

要對EXAMPLE引擎檢查原始碼,請查看MySQL原始碼分發版的sql/examples目錄。

要允許這個儲存引擎,使用在建立MySQL之時使用–with-example-storage-engine選項來configure

當您建立一個EXAMPLE之時,伺服器建立在資料庫目錄建立一個資料表定義檔案。檔案由資料表名字開始,並由一個.frm的延伸名。沒有其它檔案被建立。沒有資料被儲存進資料表或者從中取回。

mysql> CREATE TABLE test (i INT) ENGINE = EXAMPLE;
Query OK, 0 rows affected (0.78 sec)

mysql> INSERT INTO test VALUES(1),(2),(3);
ERROR 1031 (HY000): Table storage engine for 'test' doesn't have this option

mysql> SELECT * FROM test;
Empty set (0.31 sec)

EXAMPLE儲存引擎不支援編索引。

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *