PHP 都建議使用 Prepare 來避免 SQL injection 等等的,但是在 Debug 的時候,最困擾的就是如何把當下 SQL 語法印出來。
此套件支援 Debug 主要是可以將 SQL 語法印出。
個人筆記, 記錄關於 系統、程式、新聞 與 日常生活 等資訊
PHP 都建議使用 Prepare 來避免 SQL injection 等等的,但是在 Debug 的時候,最困擾的就是如何把當下 SQL 語法印出來。
此套件支援 Debug 主要是可以將 SQL 語法印出。
MySQL SELECT、UPDATE、DELETE 加上 WHERE 條件,想說應該就沒有問題,但是若型態不對,可能會出現意想不到的結果。
MySQL 於 CLI (Client) 的 MySQL 介面裡面,想要把 SQL 的結果使用變數暫時儲存,可以怎麼做呢?
MySQL 要調整 SQL 語法最常使用的就是 EXPLAIN,不過這是看預測,要看實際的詳細運行時間,可以怎麼做呢?
MySQL SELECT 的 WHERE 條件,要找 特定資料 或 刪除指定資料,常常會用到 IN,有時候一次就是上千筆,到底 WHERE 可以接多長的資料呢?
MySQL 可以在 SQL 語法做 OPTIMIZE、Repair 等等的動作,於 CLI 也可以做,作法如下:
對所有 Database 做 OPTIMIZE 語法:
比較常用的 Analyze、Repair、Optimize 語法:
MySQL 若有大量的資料需要 DELETE,要怎麼做會比較快呢?
MySQL 若想要用 source 執行大量的 SQL 語法,想要知道執行到哪邊,就得要在執行中途插入字串或 Log,在 MySQL 可以怎麼做呢?
MySQL restart failed,然後 journalctl -xe 查看,才發現下述錯誤:
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
MySQL 使用者權限後,查詢通常可以查看 MySQL 內部的 mysql.user Table 來查詢各個權限,不過想查看更詳細的,可以靠 SHOW GRANTS 來達成。
MySQL 的 SHOW GRANTS 參數不多,蠻簡單的~
不過這次除了這些操作外,還遇到一些習慣上的問題,查詢才知道 SHOW GRANTS 都不支援,在此順便做點紀錄,避免自己再犯浪費時間~