【MySql】 BlackHole :黑洞引擎
生活随笔
收集整理的這篇文章主要介紹了
【MySql】 BlackHole :黑洞引擎
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
BlackHole :黑洞引擎,寫入的任何數據都會消失,用于記錄binlog做復制的中繼存儲!
如何安裝:
在安裝MySQL時使用帶有--with-blackhole-storage-engine選項的?configure?命令。BLACKHOLE存儲引擎在MySQ供應的服務器二進制版里可以找到:
通過查看SHOW ENGINES或SHOW VARIABLES LIKE 'have%'的輸出來查看但前的mysql版本是否支持這個引擎。
mysql> SHOW ENGINES;
+--------------------+
| Engine ? ? ? ? ? ? |
+--------------------+
| CSV ? ? ? ? ? ? ? ? ? ? ?|
| MRG_MYISAM ? ?|
| MEMORY ? ? ? ? ? ? |
| BLACKHOLE ? ? ?|
| MyISAM ? ? ? ? ? ? ? ?|
| FEDERATED ? ? ?|
| ARCHIVE ? ? ? ? ? ? |
| InnoDB ? ? ? ? ? ? ? ? |
| PERFORMANCE_SCHEMA |
+--------------------+
9 rows in set (0.01 sec)
如何使用:
創建一個BLACKHOLE表的時候,服務器在數據庫目錄創建一個表定義文件。文件用表的名字開頭,并且有一個.frm擴展名。沒有其它文件關聯到這個表格。
mysql>?
mysql> CREATE TABLE test(i INT, val CHAR(10)) ENGINE = BLACKHOLE; ?
Query OK, 0 rows affected (0.02 sec)
mysql> insert into test values(1,'a') ;
Query OK, 1 row affected (0.03 sec)
mysql> insert into test values(2,'b') ; ?
Query OK, 1 row affected (0.01 sec)
mysql> insert into test values(3,'c') ; ?
Query OK, 1 row affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from test;
Empty set (0.00 sec)
mysql> exit
Bye
[root@rac3 ~]# cd /opt/mysql/data/test/
[root@rac3 test]# ll
總計 48
-rw-rw---- 1 mysql mysql 8632 12-10 15:22 sbtest.frm
-rw-rw---- 1 mysql mysql 8632 12-19 13:38 t10.frm
-rw-rw---- 1 mysql mysql 8632 12-16 17:01 t1.frm
-rw-rw---- 1 mysql mysql 8582 12-20 17:45 test.frm
[root@rac3 test]#?
從上面的例子中可以看出使用BLACKHOLE存儲引擎的表不存儲任何數據,但如果mysql啟用了二進制日志,SQL語句被寫入日志(并被復制到從服務器)。這樣使用BLACKHOLE存儲引擎的mysqld可以作為主從復制中的中繼重復器或在其上面添加過濾器機制。例如,假設你的應用需要從服務器側的過濾規則,但傳輸所有二進制日志數據到從服務器會導致較大的網絡流量。在這種情況下,在主服務器主機上建立一個偽從服務器進程。
主服務器的操作寫入二進制日志,偽mysqld進程作為從服務器,在偽mysqld進程上配置replicate-do和replicate-ignore規則,并且寫一個新的,被過濾的二進制日志 。這個已過濾日志被提供給其他真正的從服務器。因為偽進程不存儲任何數據,只消耗很小的額外的mysqld進程資源。這個類型的建立可以用額外復制從服務器來重復。
當然如果配置一主多從的話,多個從服務器會在主服務器上分別開啟自己相對應的線程,執行binlog dump命令而且多個此類進程并不是共享的。為了避免因多個從服務器同時請求同樣的事件而導致主機資源耗盡,可以單獨建立一個偽的從服務器或者叫分發服務器:
其它可能對BLACKHOLE存儲引擎的使用包括: 1 轉儲文件語法的驗證。 2 來自二進制日志記錄的開銷測量,通過比較允許二進制日志功能的BLACKHOLE的性能與禁止二進制日志功能的BLACKHOLE的性能。 3 ?因為BLACKHOLE本質上是一個“no-op” 存儲引擎,它可能被用來查找與存儲引擎自身不相關的性能瓶頸。
其它可能對BLACKHOLE存儲引擎的使用包括: 1 轉儲文件語法的驗證。 2 來自二進制日志記錄的開銷測量,通過比較允許二進制日志功能的BLACKHOLE的性能與禁止二進制日志功能的BLACKHOLE的性能。 3 ?因為BLACKHOLE本質上是一個“no-op” 存儲引擎,它可能被用來查找與存儲引擎自身不相關的性能瓶頸。
12.JPG
123.JPG
總結
以上是生活随笔為你收集整理的【MySql】 BlackHole :黑洞引擎的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL BlackHole 存储引擎
- 下一篇: Slave: received end