Time of Update: 2017-02-28
輸入查看當前庫中表的欄位位元: mediumint(6)[root@db-master ~]# sh alter_table.shalter table user_campaign_0 modify current_stage mediumint(6) unsigned not null default 0 comment '當前關卡';0 finished.alter table user_campaign_1 modify current_stage mediumint(6)
Time of Update: 2017-02-28
mysql> \s 或status都可以查詢到mysql狀態基本資料--------------mysql Ver 14.14 Distrib 5.1.69, for redhat-linux-gnu (x86_64) using readline 5.1Connection id: 28035
Time of Update: 2017-02-28
mysql 熱備在營運中需定期備份mysql,為崩潰後的恢複資料做準備。一般分為冷備和熱備,冷備就是停掉mysql服務,直接cp檔案,但是在生產環境中,很 少有機會這樣,一般都是在mysql提供服務的時候就進行備份,因此這牽扯到資料一致性的問題。所以,在MyISAM儲存引擎下,我們的思路就是:鎖表 –>備份–>解鎖# 進入mysql環境 鎖表root@mysql : test> flush tables with read lock;# 在系統內容下
Time of Update: 2017-02-28
Mysql讀寫分離是為了提高網站的訪問速度,提高資料庫的並發負載能力。但在實際的生產環境中,由單台Mysql作為獨立的資料庫是完全不能滿足實際需求的,無論是在安全性,高可用性以及高並發等各個方面。因此,一般來說都是通過 主從複製(Master-Slave)的方式來同步資料,再通過讀寫分離來提升資料庫的並發負載能力, 這樣的方案來進行部署與實施的。注意:先做主從複製,再度讀寫分離。MySQL主從複製結構是基於mysql
Time of Update: 2017-02-28
只有好的庫表結構、合理的索引還不夠,我們還需要合理的設計查詢,齊頭並進,一個不少才能充分發揮MySQL的優勢。一、查詢為什麼會慢?每一個查詢由一系列的子任務組成,每個子任務都會消耗一定的時間。這個我們在之前的單個查詢分析時已經簡單介紹了,當然還有額外的因素,比方說包括網路,CPU計算,統計資訊,執行計畫,鎖等待等操作,或者底層引擎在調用記憶體,CPU操作,I/O操作等上的消耗時間。最佳化查詢的目的就是減少和消除這些操作所花費的時間。查詢效能低下的最基本原因是訪問的資料太多,大部分的效能低下的查詢
Time of Update: 2017-02-28
最近一個項目需要做一個mysql+keepalived高可用主從同步,配起來當然輕車熟路,但想到如何在主庫掛掉,從庫接管後,以最快的速度恢複資料,並讓主庫重新接管,所以整理了下思路,編寫了如下指令碼,供大家參考mysql主從,以及keepalived高可用配置本博傳送門:http://showerlee.blog.51cto.com/2047005/1220801http://showerlee.blog.51cto.com/2047005/1188549一.備份從庫當前資料庫注:以下的所有配置
Time of Update: 2017-02-28
一、基本理論在mysql大資料處理上,水平分表技術是很常用的,但是分表技術帶來了PHP處理的很大開銷,為瞭解決這個弊端Mysql5.1以後以外掛程式的方式增加了一個新的技術--分區技術。分區技術是在邏輯層進行的水平分表,對於應用程式而言還是一張表,Mysql5.1有4種分區類型1、RANGE:基於屬於一個給定連續區間的列值,把多行分配給分區。2、LIST :類似於RANGE分區,區別在於LIST分區是基於列值匹配一個離散值集合中的某個值來進行 選擇3、HASH
Time of Update: 2017-02-28
維護表有三個主要的目的:1、找到並修複損壞的表。對於MyISAM儲存引擎來說,表損壞通常是系統崩潰導致的。其他的引擎也會由於硬體的問題,MySQL本身的缺陷或者作業系統的問題導致索引的損壞。損壞的索引,會導致查詢返回錯誤的結果或者莫須有的主鍵衝突等問題,嚴重時還會導致資料庫崩潰。這類情況,可以嘗試check table來檢查是否發生了表損壞,有些儲存引擎不支援這個命令。可以使用repair table 來修複損壞的表,但同樣不是所有引擎都支援該命令。如果引擎不支援,可以使用alter操作重建表,
Time of Update: 2017-02-28
在InnoDB中,bufferpool裡面的dirtypage一方面可以加快資料處理速度,同時也會造成資料的不一致(RAMvsDISK)。本文介紹了dirtypage是如何產生,以及InnoDB如何利用redolog如何消除dirtypage產生的資料不一致。當事務(Transaction)需要修改某條記錄(row)時,InnoDB需要將該資料所在的page從disk讀到bufferpool中,事務提交後,InnoDB修改page中的記錄(row)。這時bufferpool中的page就已經和d
Time of Update: 2017-02-28
慢查詢日誌(不包括擷取鎖的時間)1,開啟慢查詢日誌功能以前的版本中開啟慢查詢日誌功能的參數是--log_slow_queries在my.cnf檔案中指定,但是現在新的版本中用參數--slow_query_log和--slow_query_log_file來指定slow_query_log=1slow_query_log_file=/tmp/mysqlslow.log重新啟動mysqlmysql> show variables like "%slow%";+-------
Time of Update: 2017-02-28
查詢日誌的作用是記錄所有用戶端發來的sql語句,也就是記錄用戶端的所有操作Log參數將要過時,現在用general_log來代替開啟查詢日誌功能mysql> showvariables like "%log";+----------------+-------+| Variable_name| Value |+----------------+-------+| back_log| 50|| general_log| OFF|| log| OFF||
Time of Update: 2017-02-28
1,binlog_cache_size和max_binlog_cache_size表示的為每個session的事物分配的緩衝一般的當插入或者修改資料的時候,不會立刻寫磁碟,一般會緩衝起來,緩衝的大小有binlog_cache_size 來控制mysql> show variables like"%binlog_cache%";+-----------------------+----------------------+| Variable_name| Value|+-
Time of Update: 2017-02-28
MySQL 5.5 中對於二進位日誌 (binlog) 有 3 種不同的格式可選:Mixed,Statement,Row,預設格式是 Statement。總結一下這三種格式日誌的優缺點。MySQL Replication 複製可以是基於一條語句 (Statement Level) ,也可以是基於一條記錄 (Row Level),可以在 MySQL 的配置參數中設定這個複製層級,不同複製層級的設定會影響到 Master 端的 bin-log 日誌格式。1.
Time of Update: 2017-02-28
一,二進位記錄檔的作用Mysql的二進位日誌記錄的是所有mysql資料庫發生變更的資訊,因此對資料庫非常重要,二進位日誌的作用我概括了一下主要包含如下幾個方面:1、可以用於資料庫基於時間點的還原。2、可以用來分析資料庫發生更改的情況,比如程式的bug導致資料庫資料更改等等。3、二進位日誌還可以用來重建資料庫。二,二進位日誌相關的變數和參數三,配置二進位日誌1,開啟bin-log日誌,在my.cnf中修改指定了bin-log日誌的路徑,開啟日誌後需要myssqladmin flush
Time of Update: 2017-02-28
mysql的多執行個體配置安裝一,什麼情況下我們會考慮一台物理伺服器上部署多個執行個體,大致有以下幾種情況:1,採用了資料偽分布式架構的原因,而項目啟動初期又不一定有那多的使用者量,為此先一組物理資料庫伺服器,但部署多個執行個體,方便後續遷移;2,為規避mysql對SMP架構不支援的缺陷,使用多執行個體綁定處理器的辦法(NUMA處理器必須支援,不過現在大部分處理器都支援的!),把不同的資料庫分配到不同的執行個體上提供資料服務;3,一台物理資料庫伺服器支撐多個資料庫的資料服務,為提高mysql複製
Time of Update: 2017-02-28
mysql的啟動有很多方法,我們將來一一討論一,mysqldmysqld是mysql的服務mysqld這種方式啟動的時候會讀取my.cnf檔案中的[mysqld]和[server]組group(每一個組都有[]來分割)一般的,我們通過這種方式手動的調用mysqld,如果不是出去調試的目的,我們一般都不這樣做。因為這種方式會使錯誤記錄檔直接從終端輸出,而不是記錄在錯誤記錄檔檔案中,這樣,如果mysql崩潰的話我們也不知道原因。串連方法start[root@test4 ~]# /usr/local/
Time of Update: 2017-02-28
瞭解mysql的源碼目錄包括用戶端代碼,服務端代碼,測試載入器和其他庫檔案Mysql源碼結構Bdb 伯克利DB表引擎BUILD 構建工程的指令碼Client 用戶端Cmd-line-utils 命令列工具Config 構建工程所需的一些檔案Dbug Fred Fish的調試庫Docs 文檔檔案夾Extra 一些相對獨立的次要的工具Heap HEAP表引擎Include 標頭檔Innobase INNODB表引擎Libmysql 動態庫Libmysql_r
Time of Update: 2017-02-28
MySQL是一個關係型資料庫管理系統,由瑞典MySQL
Time of Update: 2017-02-28
# mysqladmin -uroot -p password 'newpassword'Enter password:mysqladmin: connect to server at 'localhost' failederror: 'Access denied for user 'root'@'localhost' (using password: YES)'現在終於被我找到瞭解決方法,如下(請先測試方法三,謝謝!):方法一:# /etc/init.d/mysql stop# mysqld_
Time of Update: 2017-02-28
MySQL的主從複製應用情境非常多,預設的MySQL複製是基於非同步且明文傳輸的,也就是說,速度快,但是從伺服器的資料會有著一定的滯後性,明文也就意味著資料轉送的不安全。因此筆者這裡構建一個簡單的基於加密並半同步的主從MySQL,當然由於其半同步的特性,主伺服器的寫操作速度必會有所降低。究竟如何選擇,這取決於情境需要了。實驗環境:RHEL5.8 MySQL5.5.28192.168.88.21 master.mos.com