一般情況下,mysql會默認提供多種存儲引擎,你可以通過下面的查看:
成都創新互聯自2013年創立以來,先為雷州等服務建站,雷州等地企業,進行企業商務咨詢服務。為雷州企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
看你的mysql現在已提供什么存儲引擎:
mysql show engines;
看你的mysql當前默認的存儲引擎:
mysql show variables like \\'%storage_engine%\\';
你要看某個表用了什么引擎(在顯示結果里參數engine后面的就表示該表當前用的存儲引擎):
mysql show create table 表名;
直連到MySQL的功能現在已被添加到ClickHouse中。所以可以直接從ClickHouse查詢MySQL表中的數據。
ClickHouse是一個超高性能的海量數據快速查詢的分布式實時處理平臺,在數據匯總查詢方面(如GROUP BY),ClickHouse的查詢更快,因此通常情況下在MySQL上進行聚合。
下面是在自己的虛擬環境中做的測試記錄。既然是虛擬環境非生產環境,請看參考應用級別,而不是嚴格的測試。
正確準備和測試大約1000萬個數據項。
執行腳本以創建樣本數據。這是約500 MB。
在MySQL中創建一個表并導入它。
由于似乎字符串數據比數字值更容易匯總,所以內容是數字的,但它們是可變的類型。
然后執行計算操作。
用BLOB類型做GROUPBY似乎很慢。
您可以在ClickHouse上使用MySQL數據,只需在下面的表格中指定它,而不是表名。
啟動ClickHouse客戶端并進行測試。
如果您在啟動時不添加--multiline選項,則不會放置多行查詢,因此請繼續。
SELECT?
data1,?
COUNT(*)
FROM mysql('localhost','mikage','testdata','mikage','')?
GROUP BY data1
┌─data1─┬─COUNT()─┐
│? ? 4│1999013│
│? ? 3│1998988│
│? ? 2│1999993│
│? ? 5│2001553│
│? ? 1│2000453│
└───────┴─────────┘
5 rows in set. Elapsed: 2.685 sec. Processed 10.00 million rows,40.00 MB(3.72 million rows/s.,14.90 MB/s.)?
SELECT?
data2,?
COUNT(*)
FROM mysql('localhost','mikage','testdata','mikage','')?
GROUP BY data2
┌─data2─┬─COUNT()─┐
│6? ? │? 999786│
│8? ? │1001805│
│9? ? │1001438│
│3? ? │1000357│
│2? ? │1000648│
│4? ? │? 998349│
│5? ? │? 998889│
│10? ? │? 999424│
│1? ? │1000530│
│7? ? │? 998774│
└───────┴─────────┘
10 rows in set. Elapsed: 2.692 sec. Processed 10.00 million rows,101.00 MB(3.71 million rows/s.,37.52 MB/s.)?
SELECT?
data3,?
COUNT(*)
FROM mysql('localhost','mikage','testdata','mikage','')?
GROUP BY data3
-- 結果省略
100000 rows in set. Elapsed: 5.236 sec. Processed 10.00 million rows,138.89 MB(1.91 million rows/s.,26.52 MB/s.)?
SELECT?
data1,?
uniqExact(data5)
FROM mysql('localhost','mikage','testdata','mikage','')?
GROUP BY data1
┌─data1─┬─uniqExact(data5)─┐
│? ? 4│? ? ? ? ? 1811674│
│? ? 3│? ? ? ? ? 1812072│
│? ? 2│? ? ? ? ? 1812503│
│? ? 5│? ? ? ? ? 1814106│
│? ? 1│? ? ? ? ? 1813005│
└───────┴──────────────────┘
5 rows in set. Elapsed: 12.944 sec. Processed 10.00 million rows,198.89 MB(772.55 thousand rows/s.,15.37 MB/s.)?
-- ClickHouse有一個函數來粗略計算一個唯一的數字,所以讓我們來計算一下。
在MySQL中,相當耗時的查詢也可以在很短的時間內處理。
重復統計時,最好將數據復制到ClickHouse一次。
如果您復制它,后續查詢將更快。
建議暫時使用StripeLog引擎。
如果您有一個主鍵,您可能還想要使用MergeTree表。這是在ClickHouse中最常用的引擎。
有必要用ORDER BY指定數據的排序順序(即使有重復也沒有問題)。
我會嘗試以前的查詢。以下是StripeLog引擎的測試結果。
測試耗時總結如下:
我認為這個錯誤很大,因為它在VM環境下僅測試了一次
從左邊開始為,(1)MySQL中的時間 (2) ClickHouse從MySQL讀取和處理數據的時間 (3) 在ClickHouse上處理復制數據的時間。
執行查詢 MySQL處理時間 (秒) MySQL-ClickHouse處理時間 (秒) ClickHouse處理時間 (秒)
groupby(data1) 3.22 2.685 0.071
groupby(data2) 4.01 2.692 0.177
groupby(data3) 212.82 5.236 0.779
groupby(data1)+uniq(data5) 183.56 12.944 1.725
groupby(data1)+uniq(data5)概算 (無此功能) 6.026 0.285
當引用MySQL數據時,如果沒有對應于ClickHouse的類型,它似乎是String類型。
沒有相應的類型如Decimal類型,所以它也是String類型。
如果你想把它作為一個數值,精度將會改變,但是似乎有必要在MySQL端保持Double類型。
而且,Date和DateTime類型在MySQL和ClickHouse之間的范圍也是不同的。
ClickHouse日期類型是1970 - 2038年之間。
如果有超出范圍的數據,可能需要使其成為字符串類型,按年份,月份,日期分列,并將其作為數值復制。
參照源碼如下:
MySQL類型 ClickHouse 類型 參考
tinyint????UInt8 / Int8
smallint????UInt16 / Int16
int / mediumint????UInt32 / Int32
bigint????UInt64 / Int64
float????Float32
double????Float64
dateDate????有可以表達的范圍差異
datetime????DateTime有可以表達的范圍差異
timestamp????DateTime
binaryFixed????String
除上述以外? ? String
輸出所有的字段及不使用謂詞如distinct,limit等、不分組匯總、不附加任何篩選條件和實施任何連接即可檢索出該表的所有數據。
例如下列語句:
select * from t1(* 號表示輸出所有的字段)
Mysql如何查詢表中的數據:
選擇需要進行查詢的數據庫的鏈接地址。
在數據庫鏈接地址中,找到需要查詢的數據庫,雙擊將其數據庫打開,可以看到數據庫的顏色會由灰色變成彩色。
點擊上方的‘查詢’功能,然后點擊箭頭所指的‘創建查詢’功能。
網頁名稱:mysql元數據怎么查,mysql元數據管理
標題URL:http://m.2m8n56k.cn/article0/dscdcio.html
成都網站建設公司_創新互聯,為您提供全網營銷推廣、ChatGPT、建站公司、靜態網站、企業建站、品牌網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯