Time of Update: 2017-01-18
在遇到嚴重性能問題時,一般都有這麼幾種可能:1、索引沒有建好; 2、sql寫法過於複雜; 3、配置錯誤; 4、機器實在負荷不了; 1、索引沒有建好 如果看到mysql消耗的cpu很大,可以用mysql的client工具來檢查。 在linux下執行 /usr/local/mysql/bin/mysql -hlocalhost -uroot -p 輸入密碼,如果沒有密碼,則不用-p參數就可以進到用戶端介面中。 看看當前的運行情況 show full processlist 可以多運行幾次
Time of Update: 2017-01-18
首先建立一個表 Use Test; Create Table TableTest( `ID` mediumint(8) default '0', `Name` varchar(100) default '' ) TYPE=MyISAM; 向資料表匯入資料 Load Data InFile 'C:/Data.txt' Into Table `TableTest` 常用如下: Load Data InFile 'C:/Data.txt' Into Table `TableTest` Lines
Time of Update: 2017-01-18
假設現在有如下N條記錄 表明叫book id author title 1 aaa AAA 2 bbb BBB 3 ccc CCC 4 ddd DDD 5 eee AAA 現在想從這5條記錄中查詢所有title不重複的記錄 select distinct title,author from book這樣是不可以的 因為distinct只能作用於一個欄位 想請教應該怎麼寫 答案: 複製代碼 代碼如下:select a.* from book a right join ( select
Time of Update: 2017-01-18
相信很多個人網站的站長,或者是獨立Blog的博主,都有著備份資料庫這樣一個需求。當然WordPress這樣外掛程式非常豐富的Blog系統有好多能幫你完成這項任務的外掛程式。如果您需要自己親手來備份資料庫的話,我貼一個Mysql自動備份指令碼供大家參考,在國外網站上看到的,還是不錯,實現了定期備份Mysql資料庫,並且可以選在在每周的一天做指定目錄下檔案的全面備份,備份檔案自動上傳到你指定的FTP上,保證了備份的可靠性。如果只是把Database
Time of Update: 2017-01-18
MySQL Proxy最強大的一項功能是實現“讀寫分離(Read/Write Splitting)”。基本的原理是讓主要資料庫處理事務性查詢,而從資料庫處理SELECT查詢。資料庫複寫被用來把事務性查詢導致的變更同步到叢集中的從資料庫。 Jan Kneschke在《MySQL Proxy learns R/W Splitting》中詳細的介紹了這種技巧以及串連池問題:
Time of Update: 2017-01-18
查看參數:SHOW VARIABLES; 設定參數:SET GLOBAL 參數名稱=value;如設定資料庫最大串連數為:SET GLOBAL max_connections=1000。 用shell>mysqld-help這個命令可以得到一張所有mysql選項和可組態變數的表.輸出以下資訊: possible variables for option--set-variable(-o) are: back_log current value:5
Time of Update: 2017-01-18
但請注意,下面的最佳化並不是完全的。MYSQL實施了許多最佳化,但我沒時間全部測試. MySQL的一些最佳化列在下面: 刪除不必要的括弧: ((a AND b) AND c OR (((a AND b) AND (c AND d)))) -> (a AND b AND c) OR (a AND b AND c AND d) 常數調入: (a<b AND b=c) AND a=5 -> b>5 AND b=c AND a=5 刪除常數條件: (B>=5 AND B=5
Time of Update: 2017-01-18
如果使用的是MySQL 5.0.x可以直接將以下內容儲存替換MySQL中的my.ini,記得要修改basedir和datadir兩個欄目的路徑。複製代碼 代碼如下:[client] port=3306 [mysql] default-character-set=gbk [mysqld] port=3306 basedir="D:/web/mysql/" datadir="D:/web/mysql/Data/" default-character-set=gbk
Time of Update: 2017-01-18
資料庫檔案很大,約有70G, 如果普通的遷移,需要在未經處理資料庫匯出資料,然後在新資料庫匯入資料 經仔細考慮,是否MySQL的資料庫檔案儲存格式在不同的作業系統相同呢? 測試過程如下: 在64位SUN機器上安裝64位版的MySQL 停止MySQL服務 複製Windows上的32位MySQL的資料檔案(全部,除了system和日誌等)到64位機器上, 修改相應的檔案和目錄許可權, 檔案為 chmod 660 目錄為 chmod 700 然後重啟MySQL服務,運行正常。 總結:
Time of Update: 2017-01-18
大概瀏覽了一下,主要可能是因為以下幾種原因: 一種可能是發送的SQL語句太長,以致超過了max_allowed_packet的大小,如果是這種原因,你只要修改my.cnf,加大max_allowed_packet的值即可。 還有一種可能是因為某些原因導致逾時,比如說程式中擷取資料庫連接時採用了Singleton的做法,雖然多次串連資料庫,但其實使用的都是同一個串連,而且程式中某兩次操作資料庫的間隔時間超過了wait_timeout(SHOW
Time of Update: 2017-01-18
1.myisamchk的調用方法 myisamchk [options] tbl_name ... 其中options指定你想讓myisamchk幹什麼。 它允許你通過使用模式“*.MYI”指定在一個目錄所有的表。 shell> myisamchk *.MYI 推薦的快速檢查所有MyISAM表的方式是: shell> myisamchk --silent --fast /path/to/datadir/*/*.MYI 當你運行myisamchk時,必須確保其它程式不使用表。
Time of Update: 2017-01-18
在以下幾種條件下,MySQL就會做全表掃描: 1>資料表是在太小了,做一次全表掃描比做索引鍵的尋找來得快多了。當表的記錄總數小於10且記錄長度比較短時通常這麼做。 2>沒有合適用於 ON 或 WHERE 分句的索引欄位。 3>讓索引欄位和常量值比較,MySQL已經計算(基於索引樹)到常量覆蓋了資料表的很大部分,因此做全表掃描應該會來得更快。
Time of Update: 2017-01-18
1、使用SHOW語句找出在伺服器上當前存在什麼資料庫: mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | +----------+ 3 rows in set (0.00 sec) 2、建立一個資料庫abccs mysql> Create DATABASE abccs; 注意不同作業系統對大小寫敏感。 3、選擇你所建立的資料庫 mysql> USE abccs
Time of Update: 2017-01-18
1.建立使用者。 //登入MYSQL @>mysql -u root -p @>密碼 //建立使用者 mysql> mysql> insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_sub ject) values("localhost","pppadmin",password("passwd"),'','',''); 這樣就建立了一個名為:phplamp 密碼為:1234 的使用者。
Time of Update: 2017-01-18
Conventions and Styles約定和編程風格 每次我想要示範實際代碼時,我會對mysql用戶端的螢幕就出現的代碼進行調整,將字型改成Courier,使他們看起來與普通文本不一樣(讓大家區別程式碼和本文)。在這裡舉個例子: mysql> DROP FUNCTION f; Query OK, 0 rows affected (0.00 sec) 如果執行個體比較大,則需要在某些行和段落間加註釋,同時我會用將"<--"符號放在頁面的右邊以表示強調。例如:
Time of Update: 2017-01-18
mysql中文排序方法1 mysql在查詢字串時是大小寫不敏感的,在編繹mysql時一般以ISO-8859字元集作為預設的字元集,因此在比較過程中中文編碼字元大小寫轉換造成了這種現象,比較應急的方法是對於包含中文的欄位加上"binary"屬性,使之作二進位比較, 例如將"name char(10)"改成"name char(10)binary"." (已實驗成功) mysql中文排序方法2 編譯mysql時使用--with--charset=gbk (未測試)
Time of Update: 2017-01-18
第一步: 1:磁碟尋道能力,以高速硬碟(7200轉/秒),理論上每秒尋道7200次.這是沒有辦法改變的,最佳化的方法是----用多個硬碟,或者把資料分散儲存. 2:硬碟的讀寫速度,這個速度非常的快,這個更容易解決--可以從多個硬碟上並行讀寫. 3:cpu.cpu處理記憶體中的資料,當有相對記憶體較小的表時,這是最常見的限制因素. 4:記憶體的限制.當cpu需要超出適合cpu緩衝的資料時,緩衝的頻寬就成了記憶體的一個瓶頸---不過現在記憶體大的驚人,一般不會出現這個問題. 第二步:
Time of Update: 2017-01-18
一、串連MYSQL。 格式: mysql -h主機地址 -u使用者名稱 -p使用者密碼 1、例1:串連到本機上的MYSQL。 首先在開啟DOS視窗,然後進入目錄 mysqlbin,再鍵入命令mysql -uroot -p,斷行符號後提示你輸密碼,如果剛安裝好MYSQL,超級使用者root是沒有密碼的,故直接斷行符號即可進入到MYSQL中了,MYSQL的提示符是:mysql> 2、例2:串連到遠程主機上的MYSQL。假設遠程主機的IP為:110.110.110.110,使用者名稱為root,
Time of Update: 2017-01-18
功能新增或變更的: 安全增強:使嚴格控制的位置,從哪個使用者定義的函數可以被載入, plugin_dir系統變數已的 backported從MySQL 5.1 。如果該值非空,使用者定義函數對象的檔案可以被載入,只有從目錄中命名這個 變數。如果該值是空的,行為是用來前5.0.67適用於: UDF的對象檔案必須設在一個目錄是搜查你的系統 的動態連結。 (錯誤# 37428 )
Time of Update: 2017-01-18
比如,表:event(id int(10) auto_increment primary key, sid int(10)not null,