wget https://sourceforge.net/projects/sysbench/files/sysbench/0.4.12/sysbench-0.4.12.tar.gztar zxvf sysbench-0.4.12.tar.gz && cd sysbench-0.4.12./autogen.sh./configure --prefix=/usr/local/mysql \
--with-mysql=/usr/local/mysql \
--with-mysql-includes=/usr/local/mysql/include/mysql/ \
--with-mysql-libs=/usr/local/mysql/lib/mysql/
make && make install關鍵: --with-mysql-includes 和 --with-mysql-libs 必須精確到 include/mysql 和 lib/mysql 子目錄,否則編譯失敗。
sysbench --test=oltp \
--mysql-host=127.0.0.1 --mysql-port=3421 \
--mysql-user=root --mysql-password=$password \
--mysql-db=test --mysql-socket=/var/mysql.sock \
--oltp-table-name=test --mysql-table-engine=innodb \
--oltp-table-size=1000000 prepare
sysbench --test=oltp \
...(同上連接參數)...
--max-requests=100000 --max-time=600 --num-threads=100 run
sysbench --test=oltp ... cleanup
| 操作類型 | 非壓縮表 | 壓縮表 | 差異 |
|---|---|---|---|
| 純 INSERT(100 萬行) | 73 秒,13.6k TPS | 432 秒,2.3k TPS | 壓縮表慢 ~6 倍 |
| 混合 OLTP(讀寫) | 295 秒,3.4k TPS | 318 秒,3.1k TPS | 壓縮表略慢 |
結論: InnoDB 行壓縮(ROW_FORMAT=COMPRESSED)顯著降低寫入吞吐,讀寫混合場景影響較小。需根據存儲成本與性能權衡。