第08問:我有表,你有數據麼?


第08問:我有表,你有數據麼?


問題:

我已經有表結構,想造一些實驗數據。

除了用存儲過程和自己寫程序,還有什麼快速的方法?


實驗:

我們先建一個庫,


第08問:我有表,你有數據麼?

創建一張表,讓表的列多一些,


第08問:我有表,你有數據麼?

下載好我們需要的工具,


第08問:我有表,你有數據麼?

現在我們就可以來生成數據了,


第08問:我有表,你有數據麼?

在比較一般的虛擬機上,為一個 26 列的表生成十萬條數據,大概需要近 4 分鐘的時間。

來看一下生成的數據:


第08問:我有表,你有數據麼?

值得一提的是,其中的文本生成規則,對應不同長度的字段,生成的規則也不同,文檔如圖:


第08問:我有表,你有數據麼?


小貼士:

Lorem Ipsum 並不是隨機文本。以下引自 https://cn.lipsum.com/

Lorem Ipsum 始於西塞羅(Cicero)在公元前 45 年作的 “de Finibus Bonorum et Malorum”(善惡之盡)裡 1.10.32 和 1.10.33 章節。這本書是一本關於道德理論的論述,曾在文藝復興時期非常流行。

另外,mysql_random_load_data 工具也支持根據外鍵引用關係,生成外鍵的相關數據。


結論:

percona 為我們貢獻了不少好工具,mysql_random_load_data 是其中大家比較陌生的一款。

我們經常需要做一些實驗,用 sysbench、mysqlslap 等工具,自定義表結構都比較麻煩;用 generatedata 等數據生成工具,需要人工將表結構翻譯成工具能識別的格式。

mysql_random_load_data 使用起來清晰簡單。其實 golang 語言編寫,修改起來也比較簡單。

大家如有對其的改進需求,也可回覆本文,如果有一定數量的需求,我們也可以開一個分支對其進行增強。

關於 MySQL 的技術內容,你們還有什麼想知道的嗎?趕緊留言告訴小編吧!


第08問:我有表,你有數據麼?


分享到:


相關文章: