在Windows環(huán)境下構(gòu)筑和調(diào)試Mysql數(shù)據(jù)庫是許多網(wǎng)站開發(fā)者的一種首選。本人在Windows98環(huán)境下初學(xué)Mysql,現(xiàn)將學(xué)習(xí)過程與經(jīng)驗總結(jié)出來供大家參考。 1、下載Mysql-3.23.35-win.zip并解壓 2、運行setup.exe;選擇d:Mysql,"tyical install" 3、啟動Mysql,有如下方法 方法一 使用winMysqladmin 1)、進入d::Mysqlbin目錄,運行winMysqladmin.exe,在屏幕右下角的任務(wù)欄內(nèi)會有一個帶紅色的圖符 2)、鼠標左鍵點擊該圖符,選擇“show me”,出現(xiàn)“WinMysqlAdmin”操作界面;首次運行時會中間會出現(xiàn)一個對話框要求輸入并設(shè)置你的用戶名和口令 3)、選擇“My.INI setup” 4)、在“Mysqld file”中選擇“Mysqld-opt”(win9x)或“Mysqld-nt”(winNT) 5)、選擇“Pick-up or Edit my.ini values”可以在右邊窗口內(nèi)對你的my.ini文件進行編輯 6)、選擇“Save Modification”保存你的my.ini文件 7)、如果你想快速使用winMysqladmin(開機時自動運行),選擇“Create ShortCut on Start Menu” 8)、測試: 進入DOS界面: 在d:Mysqlbin目錄下運行Mysql,進入Mysql交互操作界面 輸入show databases并回車,屏幕顯示出當前已有的兩個數(shù)據(jù)庫Mysql和test 方法二 不使用winMysqladmin 1)、在DOS窗口下,進入d:/Mysql/bin目錄 2)、win9X下)運行:Mysqld 在NT下運行:Mysqld-nt --standalone 3)、此后,Mysql在后臺運行 4)、測試Mysql:(在d:/Mysql/bin目錄下) a)、Mysqlshow 正常時顯示已有的兩個數(shù)據(jù)庫Mysql和test b)、Mysqlshow -u root Mysql 正常時顯示數(shù)據(jù)庫Mysql里的五個表:columns_priv,db,host,tables_priv,user c)、Mysqladmin version status proc 顯示版本號、狀態(tài)、進程信息等 d)、Mysql test 進入Mysql操作界面,當前數(shù)據(jù)庫為test 5)、Mysql關(guān)閉方法: Mysqladmin -u root shutdown 4、至此,Mysql已成功安裝,接著可以熟悉Mysql的常用命令并創(chuàng)建自己的數(shù)據(jù)庫了。
創(chuàng)新互聯(lián)主營湘潭網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App制作,湘潭h5微信小程序開發(fā)搭建,湘潭網(wǎng)站營銷推廣歡迎湘潭等地區(qū)企業(yè)咨詢
之前寫過了Go語言gorm框架MySQL實踐,其中對gorm框架在操作MySQL的各種基礎(chǔ)實踐,下面分享一下如何使用gorm框架對MySQL直接進行性能測試的簡單實踐。
這里我使用了一個原始的Go語言版本的 FunTester 測試框架,現(xiàn)在只有一個基本的方法,實在是因為Go語言特性太強了。框架設(shè)計的主要思路之一就是利用Go語言的閉包和方法參數(shù)特性,將一個 func() 當做性能測試的主題,通過不斷運行這個 func() 來實現(xiàn)性能測試。當然還有另外一個思路就是運行一個多線程任務(wù)類,類似 Java 版本的 com.funtester.base.constaint.ThreadBase 抽象類,這樣可以設(shè)置一些類的屬性,綁定一些測試資源,適配更多的測試場景。
下面演示select的性能測試,這里我用了隨機ID查詢的場景。
這里我使用從35開始遞增的ID進行刪除。
這里使用了select的用例部分,隨機ID,然后更新name字段,隨機10個長度的字符串。
這里用到了 FunTester 字段都是隨機生成。
到這里可以看出,性能測試框架用到的都是gorm框架的基礎(chǔ)API使用,這里MySQL連接池的管理工作完全交給了gorm框架完成,看資料說非常牛逼,我們只需要設(shè)置幾個參數(shù)。這個使用體現(xiàn)很像 HttpClient 設(shè)置 HTTP 連接池類似,這里我們也可以看出這些優(yōu)秀的框架使用起來都是非常簡單的。
PS:關(guān)于gorm的基礎(chǔ)使用的請參考上一期的文章Go語言gorm框架MySQL實踐。
你是用的windows還是linux?如果是linux,在系統(tǒng)終端輸入mysql
-u
root
-p,然后輸入你的mysql密碼,如果能夠登錄進去,說明安裝成功了。
windows也是一樣的,打開cmd,輸入上述命令,
(可能需要進入mysql
安裝目錄的bin目錄)
測試mysql是否安裝成功,用到的工具:mysql,步驟如下:
Win+R打開運行命令,輸入:net start mysql
2.有以下提示說明mysql已經(jīng)安裝成功了,如下圖:
注意事項:適用于windows。
有一些有用的工具可以測試MySQL 和基于MySQL 的系統(tǒng)的性能。這里將演示如何利用這些工具進行測試。
mysqlslap
mysqlslap可以模擬服務(wù)器的負載,并輸出計時信息。它包含在MySQL 5.1 的發(fā)行包中,應(yīng)該在MySQL 4.1或者更新的版本中都可以使用。測試時可以執(zhí)行并發(fā)連接數(shù),并指定SQL 語句(可以在命令行上執(zhí)行,也可以把SQL 語句寫入到參數(shù)文件中)。如果沒有指定SQL 語句,mysqlslap 會自動生成查詢schema 的SELECT 語句。
MySQL Benchmark Suite (sql-bench)
在MySQL 的發(fā)行包中也提供了一款自己的基準測試套件,可以用于在不同數(shù)據(jù)庫服務(wù)器上進行比較測試。它是單線程的,主要用于測試服務(wù)器執(zhí)行查詢的速度。結(jié)果會顯示哪種類型的操作在服務(wù)器上執(zhí)行得更快。
這個測試套件的主要好處是包含了大量預(yù)定義的測試,容易使用,所以可以很輕松地用于比較不同存儲引擎或者不同配置的性能測試。其也可以用于高層次測試,比較兩個服務(wù)器的總體性能。當然也可以只執(zhí)行預(yù)定義測試的子集(例如只測試UPDATE 的性能)。這些測試大部分是CPU 密集型的,但也有些短時間的測試需要大量的磁盤I/O 操作。
這個套件的最大缺點主要有:它是單用戶模式的,測試的數(shù)據(jù)集很小且用戶無法使用指定的數(shù)據(jù),并且同一個測試多次運行的結(jié)果可能會相差很大。因為是單線程且串行執(zhí)行的,所以無法測試多CPU 的能力,只能用于比較單CPU 服務(wù)器的性能差別。使用這個套件測試數(shù)據(jù)庫服務(wù)器還需要Perl 和BDB 的支持,相關(guān)文檔請參考.
Super Smack
Super Smack是一款用于MySQL 和PostgreSQL的基準測試工具,可以提供壓力測試和負載生成。這是一個復(fù)雜而強大的工具,可以模擬多用戶訪問,可以加載測試數(shù)據(jù)到數(shù)據(jù)庫,并支持使用隨機數(shù)據(jù)填充測試表。測試定義在"smack"文件中,smack 文件使用一種簡單的語法定義測試的客戶端、表、查詢等測試要素。
Database Test Suite
Database Test Suite 是由開源軟件開發(fā)實驗室(OSDL,Open Source DevelopmentLabs)設(shè)計的,發(fā)布在SourceForge 網(wǎng)站上,這是一款類似某些工業(yè)標準測試的測試工具集,例如由事務(wù)處理性能委員會(TPC,Transaction Processing Performance Council)制定的各種標準。特別值得一提的是,其中的dbt2 就是一款免費的TPC-C OLTP 測試工具(未認證)。之前本書作者經(jīng)常使用該工具,不過現(xiàn)在已經(jīng)使用自己研發(fā)的專用于MySQL 的測試工具替代了。
Percona's TPCC-MySQL Tool
我們開發(fā)了一個類似TPC-C 的基準測試工具集,其中有部分是專門為MySQL 測試開發(fā)的。在評估大壓力下MySQL 的一些行為時,我們經(jīng)常會利用這個工具進行測試(簡單的測試,一般會采用sysbench 替代),在源碼庫中有一個簡單的文檔說明。
sysbench
sysbench是一款多線程系統(tǒng)壓測工具。它可以根據(jù)影響數(shù)據(jù)庫服務(wù)器性能的各種因素來評估系統(tǒng)的性能。例如,可以用來測試文件I/O、操作系統(tǒng)調(diào)度器、內(nèi)存分配和傳輸速度、POSIX 線程,以及數(shù)據(jù)庫服務(wù)器等。sysbench 支持Lua 腳本語言,Lua 對于各種測試場景的設(shè)置可以非常靈活。sysbench 是我們非常喜歡的一種全能測試工具,支持MySQL、操作系統(tǒng)和硬件的硬件測試。(節(jié)選自《高性能MySQL》)
有兩種方法,一種方法使用mysql的check table和repair table 的sql語句,另一種方法是使用MySQL提供的多個myisamchk, isamchk數(shù)據(jù)檢測恢復(fù)工具。前者使用起來比較簡便。推薦使用。
1. check table 和 repair table
登陸mysql 終端:
mysql -uxxxxx -p dbname
check table tabTest;
如果出現(xiàn)的結(jié)果說Status是OK,則不用修復(fù),如果有Error,可以用:
repair table tabTest;
進行修復(fù),修復(fù)之后可以在用check table命令來進行檢查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2. myisamchk, isamchk
其中myisamchk適用于MYISAM類型的數(shù)據(jù)表,而isamchk適用于ISAM類型的數(shù)據(jù)表。這兩條命令的主要參數(shù)相同,一般新的系統(tǒng)都使用MYISAM作為缺省的數(shù)據(jù)表類型,這里以myisamchk為例子進行說明。當發(fā)現(xiàn)某個數(shù)據(jù)表出現(xiàn)問題時可以使用:
myisamchk tablename.MYI
進行檢測,如果需要修復(fù)的話,可以使用:
myisamchk -of tablename.MYI
關(guān)于myisamchk的詳細參數(shù)說明,可以參見它的使用幫助。需要注意的時在進行修改時必須確保MySQL服務(wù)器沒有訪問這個數(shù)據(jù)表,保險的情況下是最好在進行檢測時把MySQL服務(wù)器Shutdown掉。
-----------------------------
另外可以把下面的命令放在你的rc.local里面啟動MySQL服務(wù)器前:
[ -x /tmp/mysql.sock ] /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI
其中的/tmp/mysql.sock是MySQL監(jiān)聽的Sock文件位置,對于使用RPM安裝的用戶應(yīng)該是/var/lib/mysql/mysql.sock,對于使用源碼安裝則是/tmp/mysql.sock可以根據(jù)自己的實際情況進行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL數(shù)據(jù)庫存放的位置。
需要注意的時,如果你打算把這條命令放在你的rc.local里面,必須確認在執(zhí)行這條指令時MySQL服務(wù)器必須沒有啟動!檢測修復(fù)所有數(shù)據(jù)庫(表)