[MySQL] MySQL效能測試指南(連線|運行) – MySQL Benchmark

Intro MySQL Benchmark方法指南。 效能測試 取得PROFILE資料檢測Query: SET profiling=1;<query>;SHOW PROFILE; 從mysqlDB測測CPU: SELECT DISTINCT Transition_type_id FROM `time_zone_transition`; 連線測試 MySQL目前有個有趣的連線Latency問題,可參考:[MySQL] 如何佈署Database最佳連線路由 – phpMyAdmin建議走本機或內網 這邊提供測試方法(透過mysql client): 預裝好的選mysqldatabase來測試: use mysql; 找最大的time_zone_transition來測: SELECT * FROM `time_zone_transition`; 結果範例最後的資訊帶有總體來回時間: 120208 rows in set (0.08 sec) 交叉測試便可知越遠的client connection時間越久。

[MySQL] InnoDB Transaction – 交易指南 (SELECT … FOR UPDATE)

鎖資料列(可讀/不可讀) MySQL Document 14.5.2.4 Locking Reads 主要分為sharedLock與lockForUpdate: sharedLock locks only for write, lockForUpdate also prevents them from being selected Pessimistic Locking (SELECT … FOR UPDATE) 談到pessimistic concurrency control(Lock row for read),實作上再Transaction內使用: SELECT … FOR UPDATE 則結果列將會被鎖定且不可讀,應用上可做不重複流水號等等。

[MySQL] 資料庫密碼修改處理 – MySQL Password Change

修改密碼指令 MySQL 5.7.5 and earlier: SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘MyNewPass’); MySQL 5.7.6 and later: ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyNewPass’; MariaDB設定使用者失效Bug MariaDB版本與PHPMyAdmin版本存在使用者密碼操作問題,如有遇到則以語法自行對照操作即可修復。 Ex. 5.5.46 SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘MyNewPass’); 另外如果設定完成但登入後又失效,可以確認mysql->users該用戶的plugin欄位是否有mysql_native_password值,將其刪除再設定密碼即可。

[MySQL] Master / Slave – MySQL Replica 指南

引言 MySQL Replica 相關指令及指南 安裝 MySQL官方文件:Chapter 16 Replication 安裝筆記可以參考:https://blog.longwin.com.tw/2008/03/mysql_replication_master_slave_set_2008/ Slave 狀態檢查 狀態查詢SQL SHOW slave STATUS 建議使用command直式較好查看:SHOW slave STATUS \G; 忽略錯誤 SET GLOBAL SQL_SLAVE_SKIP_COUNTER =1; 可一次略過大量SQL數,建議逐筆Error Skip才不會漏 重新跟Master (錯誤後會停止) START SLAVE; 狀態識別 Key Description Slave_IO_Running 是否在同步,正常為Yes Slave_SQL_Running 是否在同步,正常為Yes Relay_Log_Pos Last_Error 錯誤SQL訊息 […]

[MySQL] 計算全部資料庫容量 – Count size for all databases

使用情境 總會要計算全部資料庫的總容量吧!竟然沒這SQL語法。 解決方法 下SQL語句直接從Data length計算在群組,以下為個別列出資料庫容量: SELECT table_schema AS “Database name”, SUM( data_length + index_length ) /1024 /1024 /1024 AS “Size (GB)” FROM information_schema.TABLES GROUP BY table_schema 要做加總的話,就Group SUM欄: GROUP BY “Size (GB)”

[MySQL] 如何佈署Database最佳連線路由 – phpMyAdmin建議走本機或內網

這只是一篇架構佈署建議文,主要探討MySQL Client連線MySQL Server的最佳路由。 原由 MySQL Client連線到外網MySQL Server,發現Latency頗高,如果Client是使用phpMyAdmin,可以體驗甚麼叫易怒的操作。 路由範例與速度結果 以下為連線路由測試結果 台灣MySQL Client (WAN)-> 日本AWS-RDS //慢 台灣SSH Client (WAN)-> 日本AWS-EC2 MySQL Client (LAN)-> 日本AWS-RDS //快 台灣HTTP Client (WAN)-> 日本AWS-EC2 phpMyAdmin MySQL Client (LAN)-> 日本AWS-RDS //快 總結 MySQL Client建議是在MySQL server的Local或內網,所以應該很少看到有Application會把連線Database佈署到外網的例子。 phpMyAdmin的佈署來說,就如同MySQL Client,放在MySQL server的Local或內網吧! […]

[MySQL] Mysqldump 備份&還原資料庫 – 指令範例

安裝 apt-get install mysql-client-* 版本自行查閱,以下為5.1版本範例 apt-get install mysql-client-5.1 指令範例-備份 備份使用mysqldump 備份單一資料庫 mysqldump -h hostname -u root -p database_name > backup.sql; 備份資料庫中單一資料表 # mysqldump -u root -p database_name table_name > backup.sql; 備份資料庫中多張資料表 # mysqldump -u root -p database_name table1 table2 > […]