Time of Update: 2018-12-05
樸實簡單的才是真、那些高端洋氣的複寫拓撲純屬自虐 實施複製大概會有 4 個原則: ① 一個主庫可以有多個備庫 ② 一個備庫只能有一個主庫 ③ 每個備庫 Server ID全域唯一 ④ log_slave_updates 有薪火相傳之效用 下面簡單談談幾種複製的拓撲設計、至於他們的優缺點以及適用情境留待後續慢慢獻上 ㈠ 一主一備 短評:最簡單的拓撲
Time of Update: 2018-12-05
㈠ 二進位日誌的重要性 如果有某個時間點的資料備份和所有從那時以後的二進位日誌 就可以重放自從上次全備以來的二進位日誌並"前滾"所有的變更 ㈡ 二進位日誌配置的最佳實務 對於 InnoDB 如果僅是啟用二進位日誌是不夠、還需要其他措施來保證安全: 推薦配置如下: ● sync_binlog = 1
Time of Update: 2018-12-05
㈠ 實戰環境 伺服器名·IPOSMySQLodd.example.com192.168.1.116RHEL-5.85.5.16even.example.com192.168.1.115RHEL-5.85.5.16 ㈡ 方案優缺點 優點 ● 安裝配置簡單, 實現方便,高可用效率好,可以根據服務與系統的可用性多方面進行切換 ● 可以將寫 VIP 和讀 VIP 分別進行設定,為讀寫分離做準備 ● 可以在後面添加多個從伺服器,
Time of Update: 2018-12-05
DRBD 是核心模組方式實現的塊層級同步複製技術、這裡的同步層級是可以調整的 因為DRBD 是利用網卡進行塊複製、如果、這裡用 Infiniband 進行傳輸、便可以有效處理高並發 這是種複製儲存、說白點、更像是一台熱備機器、與其說是儲存的HA、倒不如說是保證資料安全 工業環境更多用在 NFS 伺服器、並結合 Linux-HA 項目、如 Packmaker、Heartbeat 等 很多人談 DRBD 腦裂而色變、用過就知道了、腦裂不是那麼容易就發生的
Time of Update: 2018-12-05
⑴ lower_case_table_names ● 推薦理由 GNU/Linux 平台,對資料庫、表、預存程序等對象名稱大小寫敏感 為減少開發人員的開發成本,為此推薦大家設定該參數使對象名稱都自動轉換成小寫 ● 參數介紹 取值範圍: 為0:區分大小寫、Linux 平台預設值 為1:不區分大小寫
Time of Update: 2018-12-05
環境:mysql> select version();+-----------+| version() |+-----------+| 5.5.28 |+-----------+1 row in set (0.00 sec) 分區是一種表的設計模式 分區,分而治之,其重點在於高可用(管理),而附屬價值才是效能的提高 而且: 對儲存引擎層透明
Time of Update: 2018-12-05
㈠ 環境: OS : RHEL-5.8 Server:MySQL 5.5 Engine:InnoDB ㈡ 問題: 在無任何操作的前提下、磁碟IO負載都幾乎跑滿、然後跑了3、4個小時磁碟負載依舊 iotop 部分輸出:Total DISK READ: 32.55 M/s | Total DISK WRITE: 0.00 B/
Time of Update: 2018-12-05
mysql> select version()\G; *************************** 1. row *************************** version(): 5.5.16-log 1 row in set (0.00 sec) [mysql@cdio ~]$ mysqld_safe & [1] 3036 [mysql@cdio ~]$ 130506 19:16:
Time of Update: 2018-12-05
㈠ 認證和授權 認證:who am I ? 授權:what I can do ? 認證實際上就是一個驗證憑證的過程、而進入MySQL 需要出示的憑證有:host、username、password 串連MySQL 常見有 2 種: ① TCP/IP 串連 加 -h 參數、通過TCP/IP 串連MySQL 執行個體、mysql.user 對來者進行認證 顯然、對於TCP/IP 這種請求、MySQL
Time of Update: 2018-12-05
來自生產環境的朋友、可能都會碰到: 原本運行良好的查詢語句,過了一段時間後,可能會突然變得很糟糕 一個很大可能的原因就是資料分布情況發生了變化 從而導致MySQL最佳化器對驅動表的選擇發生了變化,進而出現索引失效的情況 所以、閑著蛋疼喝咖啡的時候、應該多收集兩下表的統計資訊 這個時候、Straight_JOIN 閃亮登場 MySQL 只支援 Nested Loop
Time of Update: 2018-12-05
今天被MySQL Query Cache 炕了、線上大量 Waiting on query cache mutex 那麼什麼是 Query Cache? QC 緩衝的是整個SELECT的結果集、而非執行計畫、QC的為人原則是:執行查詢最快的方式就是不去執行 但是、QC 簡單粗暴的失效策略、令人蛋疼、任何不同(空格、TAB縮排、DML等)都會導致該表的Cache不可用 失效通過single mutex
Time of Update: 2018-12-05
㈠ 原理: 只要使用者定義的索引欄位中包含了主鍵中的欄位、那麼這個欄位就不會再被InnoDB自動加到索引中 但如果使用者的索引欄位中沒有完全包含主鍵欄位、InnoDB 就會把剩下的主鍵欄位加到索引末尾 ㈡ 例子 例子一:CREATE TABLE t ( a char(32) not null primary key, b char(32) not null, KEY idx1 (a,b), KEY idx2 (b,a))
Time of Update: 2018-12-05
謹慎選擇資料類型很重要、為啥哩?可以提高效能、原理如下: ● 儲存(記憶體、磁碟)、從而節省I/O(檢索相同資料情況下) ● 計算、進而減負CPU負載 資料類型總體可分三種:數字、字元和時期 ㈠ 數字 ① 分類 ② 為整數類型指定寬度沒啥意義、硬說呢、大概也是為了顯示字元的個數、人性化點
Time of Update: 2018-12-05
㈠ 任何查詢都討厭 只要是查詢、MySQL都討厭、執行查詢最快的方式就是不去執行 緩衝為王、比如Redis或者memcache ㈡ 查詢結果集最小 盡量基於主鍵或者二級索引來查詢、通過覆蓋索引避免回表來節省IO 如: select col1 from table where primary_key_column=something; ㈢
Time of Update: 2018-12-05
安裝Connector/Python:# wget http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-1.0.11.zip# unzip mysql-connector-python-1.0.11.zip# cd mysql-connector-python-1.0.11 # python setup.py install 測試Connector/Python是否裝上:>>&
Time of Update: 2018-12-05
視圖本質上只是一條SQL語句而已、但令人蛋疼的是MySQL並沒有把該SQL語句儲存下來 而是像對待表一樣、把視圖的定義用檔案的形式儲存、以 .frm 存在 那麼用show create view 顯示的SQL將非常不友好 下面介紹一種方法來突破這種限制建立視圖:mysql> create view v_t as select id from t where id=2;Query OK, 0 rows affected (0.03
Time of Update: 2018-12-05
㈠ 錯誤記錄檔 ① 參數 log_error:指定日誌的位置和名稱 ② 作用 ⑴出錯/警示資訊 ⑵最佳化協助 ㈡ 慢查詢日誌 ① 參數 log_slow_queries:指定日誌的位置和名字 long_
Time of Update: 2018-12-05
㈠ MySQLdb 這是個提供MySQL支援Python的第三方驅動 符合 Python DB API 2.0的標準 官網:http://sourceforge.net/projects/mysql-python/ ㈡ MySQL Connector/Python 這是個內建於MySQL Server層、被Oracle支援、提供Python API
Time of Update: 2018-12-05
原理: 永久連結基礎 當多個檔案共同指向同一inode、inode連結數N>1、刪除任何一個檔案都是巨快 因為、此時刪除的僅僅是指向inode的指標 而當N=1時、則不一樣了、此時刪除的檔案相關的所有資料區塊、所以慢 測試:root@ # ln stock.ibd stock.id.hdlkroot@ # ls stock.* -l-rw-rw—- 1 mysql mysql
Time of Update: 2018-12-05
㈠ HugePages簡介 HugePages是kernel 2.6引入以便適應越來越大的實體記憶體 在Linux下、page size預設是4K、如果使用HugePages、預設是2M 再看2個術語: page table 映射表:實體記憶體和swap的對應關係、訪問記憶體是先讀page table、根據表裡的映射關係操作 TLB :cpu cache組件、緩衝部分page