於 MySQL / MariaDB 中啟用 SQL Query Log

要知道前端下了什麼SQL到DB,在SQL Server中你可以使用SQL Server Profiler這個工作來達成。

但是在MySQL / MariaDB中目前似乎沒有一個好用的介面可以使用,

Oracle MySQL Enterprise Monitor 應該可以做到,但是授權商業使用的就是要錢,而且還不便宜,

官方定價,要使用Oracle MySQL Enterprise Monitor 最低消費,請付 USD 5000,價格請見 http://www.mysql.com/products/。

這價錢不是一般小公司玩的起的,所以只能先用比較陽春的方法來解決了。

要在 MySQL / MariaDB 中啟用SQL Query Log的功能,有以下2種方法:

把Log寫入檔案。
把Log寫入資料庫中的Table。

在資料庫中把Image格式的欄位Union起來

Union 這個運算式可以把多個 Select 指令出來的東西合成1張表

問題來了,如果我要把資料表中內含有 Image 格式欄位 Union 起來呢?

如果你直接下 Union 得話,就會得到下面的錯誤

訊息 421,層級 16,狀態 1,行 1
不能選取 image 資料類型作為 DISTINCT,因為無法比較。

用 Union All 的話又會得到重覆的資料

解決方法就是使用Union All,但是在Union All 前把重覆的資料篩就行了