原创 mysql 行級鎖應用
當在MySQL中需要實現從scheduler_task表中選擇一個status='todo'的任務,並將其狀態設置爲"ongoing"和worker_id設置爲"1",同時確保線程安全並返回該任務的信息時,我們需要使用行級鎖來實現。 介紹
原创 ClickHouse使用之六 ——指定排序id
CREATE TABLE web3.tx_hashes ( `id` UInt64, `created_at` Nullable(DateTime), `updated_at` Nullable(DateTim
原创 mysql/ClickHouse limit M,N數據不穩定問題
1. 遇到問題: 在clickhouse,我有一個web3_data表,大概36w條記錄,以下查詢的數據會變: select * from ( SELECT space_id, user_address, attr_name,
原创 ClickHouse使用之五 ——clickhouse-go內存泄露解決
這個代碼運行2億條記錄,發現內存使用一直增加,內存滿了以後,直接被killed func (p *ClickHouseClient) CountAllTxTypees(startId int, endId int, SpaceStore
原创 ClickHouse使用之三 ——go程序操作
1. 得到一個clickhouse連接: import ( "context" "fmt" "log" "github.com/ClickHouse/clickhouse-go/v2" "github.com/ClickHous
原创 ClickHouse使用之四 ——外部數據源導入通用方案之insert into select from
需求: 1、在工作中,我們常常需要將外部 hive 或者 mysql、oracle 等數據源導入到clickhouse中,對於多種外部數據源,是否有通用的數據導入方案? 2、我們在clickhouse上維持一張查詢主表,但外部數據源表是hi
原创 ClickHouse使用之二 ——整合mysql,實現數據庫創建查詢導出
1. mysql創建一個用於clickhouse的賬號mysql_clickhouse並且授權 CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!'; GRANT A
原创 ClickHouse使用之一 —— server&&client搭建
1. 官方文檔: https://clickhouse.com/docs/en/install 2. docker安裝server: sudo docker run -d -e CLICKHOUSE_DB=default -e C
原创 優化併發查詢:如何處理併發統計查詢中的區間鎖
背景是查詢一個有N億條記錄的mysql表 使用go多協程同時查詢一個區間的不同數據代碼: func txHashesWorker(id int, tasks <-chan Task, results chan<- int, wg *sync
原创 insert or update 在使用事務和不使用事務兩種情況下的差異
insert or update使用事務和不使用事務的核心差異 這樣一個語句,在go多協程情況下,採用事務和不採用事務出現的問題: INSERT INTO web3_data (space_id, user_address, attr_na
原创 Go 程序編譯爲二進制文件與配置文件路徑不匹配問題
當將 Go 程序編譯爲二進制文件並在服務器上運行時,可能會遇到配置文件路徑不匹配的問題。在本篇博客中,我將介紹兩種解決方法。 方法一:指定配置文件的絕對路徑 在服務器上運行二進制文件時,通過命令行參數或環境變量傳遞配置文件的絕對路徑,而不是
原创 優化mysql大數據量查詢:範圍條件與限制結果集的比較
引言:在處理大數據量的MySQL查詢時,優化查詢性能是至關重要的。當數據量達到上億級別時,選擇合適的查詢條件和方法可以顯著影響查詢效率和響應時間。本篇博客將重點探討範圍條件查詢和限制結果集的兩種常見查詢方式,並比較它們在大數據場景下的性能差
原创 以太坊私鑰和公鑰
在以太坊網絡中,每個地址(也稱爲公鑰哈希)確實對應一個相應的私鑰。以太坊使用橢圓曲線密碼學(Elliptic Curve Cryptography,ECC)來生成公鑰和私鑰對。 具體而言,以太坊使用橢圓曲線數字簽名算法(Elliptic C
原创 solidity: fallbak和receive的作用
在Solidity中,fallback和receive是特殊的函數,用於處理合約接收以太幣的情況。 Fallback 函數 (fallback()): 當合約接收到以太幣時,如果沒有匹配的函數調用或無效的調用,就會觸發回退函數。 回退
原创 solidity: 轉賬實現
1. payable介紹 在Solidity中,payable是一個修飾符(modifier),用於聲明函數或合約可以接收以太幣(Ether)的支付。 當一個函數被標記爲payable時,它就可以接收以太幣作爲函數調用的一部分,並且可以在函