MySQL、MSSQL 的 SQL 語法裡面,想要做 if-else 或 switch,可以怎麼做呢?
標籤: mysql
MySQL 的 Prompt 想顯示主機和資料庫名稱
MySQL 的 Prompt 想要顯示主機和資料庫名稱等資訊,要怎麼設定呢?
mysql> 想要變成 (user@host) [(dbname)]> 作法如下:
- 在 Shell 輸入下述,再進入 MySQL CLI:
- export MYSQL_PS1="(\u@\h) [\d]> "
- 進入 MySQL 裡面(mysql>),輸入下述:
- PROMPT (\u@\h) [\d]>_ 或 \R (\u@\h) [\d]>_
- 或 \R (\U) [\d]>_ (註:\U = user_name@host_name)
- 詳可見:MySQL 8.0 Reference Manual :: 4.5.1.2 mysql Client Commands
- 在 Shell 輸入:
- mysql --prompt="(\u@\h) [\d]> "
- vim /etc/mysql/my.cnf
- [mysql]
- prompt=(\\u@\\h) [\\d]>\\_
上述我是使用1、4,my.cnf 的設定不需要重啟 MySQL,直接寫完 mysql cli 進入就會直接讀取生效
使用 PV 監控 MySQL Import 的比例
想要 Import 大量資料進去 MySQL,但是又想要知道現在大概跑幾%,要怎麼做呢?
PHP PDO Prepare Debug 印出 SQL 語法
PHP 都建議使用 Prepare 來避免 SQL injection 等等的,但是在 Debug 的時候,最困擾的就是如何把當下 SQL 語法印出來。
此套件支援 Debug 主要是可以將 SQL 語法印出。
MySQL SQL 語法 需要注意 型態自動轉換問題
MySQL SELECT、UPDATE、DELETE 加上 WHERE 條件,想說應該就沒有問題,但是若型態不對,可能會出現意想不到的結果。
MySQL SELECT 語法使用 變數暫存
MySQL 於 CLI (Client) 的 MySQL 介面裡面,想要把 SQL 的結果使用變數暫時儲存,可以怎麼做呢?
MySQL 追蹤調校 Profiling SQL 詳細花費時間
MySQL 要調整 SQL 語法最常使用的就是 EXPLAIN,不過這是看預測,要看實際的詳細運行時間,可以怎麼做呢?
MySQL IN 條件可以接多長?
MySQL SELECT 的 WHERE 條件,要找 特定資料 或 刪除指定資料,常常會用到 IN,有時候一次就是上千筆,到底 WHERE 可以接多長的資料呢?
MySQL 於 CLI 對所有 DB、Table 做 OPTIMIZE
MySQL 可以在 SQL 語法做 OPTIMIZE、Repair 等等的動作,於 CLI 也可以做,作法如下:
對所有 Database 做 OPTIMIZE 語法:
- mysqlcheck -o --all-databases
- mysqlcheck -o --all-databases -u [username] -p[password]
比較常用的 Analyze、Repair、Optimize 語法:
- mysqlcheck -u [username] -p[password] -o [database name]
- mysqlcheck --all-databases # -A
- mysqlcheck --all-databases --analyze # -Aa
- mysqlcheck --all-databases --auto-repair # -A --auto-repair
- mysqlcheck --all-databases --optimize # -Ao
- 於上述命令後面自己加上 -u root -p
- 上述 指令「不能」複合一起下
MySQL 如何 Delete 大量資料
MySQL 若有大量的資料需要 DELETE,要怎麼做會比較快呢?