MySQLインデックスベースストレステストの実装
2022-01-06 04:50:01
I. データベースデータのシミュレート
1-1 データベースとテーブルのスクリプトを作成する - vim slap.sh
#! /bin/bash
HOSTNAME="localhost"
PORT="3306"
USERNAME="root"
PASSWORD="123"
DBNAME="testdb"
TABLENAME="t1"
#create database
mysql -h ${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} -e "drop database if exists ${DBNAME}"
create_db_sql="create database if not exists ${DBNAME}"
mysql -h ${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} -e "${create_db_sql}"
#create table
create_table_sql="create table if not exists ${TABLENAME}(stuid int not null primary key,stuname varchar(20) not null,stusex char(1)
not null,cardid varchar(20) not null,birthday datetime,entertime datetime,address varchar(100) default null)"
mysql -h ${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${create_table_sql}"
#insert data to table
i="1"
while [ $i -le 500000 ]
do
insert_sql="insert into ${TABLENAME} values($i,'alexsb_$i','1','110011198809163418','1990-05-16','2017-09-13','testdb')"
mysql -h ${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${insert_sql}"
let i++
done
#select data
select_sql="select count(*) from ${TABLENAME}"
mysql -h ${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"
1-2 スクリプトの実行
sh slap.sh
1-3 データの有無を確認する
mysql -uroot -p123
select count(*) from testdb.t1;
1-4 インデックス最適化前後のmysqlslapによるストレステスト
mysqlslap --defaults-file=/etc/my.cnf \
--concurrency=100 --iterations=1 --create-schema='testdb' \
--query="select * from testdb.t1 where stuname='test_100'" engine=innodb \
--number-of-queries=2000 -uroot -p123 -verbose
MySQLインデックスベースストレステストに関する本記事は以上です。MySQLインデックスストレステストに関する詳細については、Script Houseの過去の記事を検索するか、引き続き以下の関連記事を参照してください。
関連
-
mysqlにおけるvarcharの日付比較とソートの実装
-
MySQLデータベースでvarchar型の数値の大きさを比較する方法
-
MySQL演算子(and, or, in, not)の具体的な使用方法
-
MySQLのNULLについて解説した記事
-
MySql認証ベースのvsftpd仮想ユーザー
-
MysqlからElasticsearchにデータを同期させる方法を説明します。
-
MySQLで正規表現を使う 詳細
-
MySQLインストールチュートリアル(Linux版
-
MySQLの一般的な分割ライブラリおよび分割テーブルスキームの概要
-
msql クエリでのエラー 'where 節' の不明な列 'yellow fruit'
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ジョイントインデックスのためのmysqlの条件とインデックスが失敗するための条件
-
MySqlの整数インデックスと文字列インデックスの失敗または暗黙の変換問題
-
SQL基本クエリステートメント
-
MySQLデータ型の詳細
-
MySQLによる既存テーブルのパーティショニングの実装
-
[解決済み】MySQLで「すべての派生テーブルは独自のエイリアスを持つ必要があります」というエラーは何ですか?
-
[解決済み】ValueError: 値の長さがインデックスの長さと一致しない|Pandas DataFrame.unique()
-
[解決済み】文字列からuniqueidentifierに変換する際に変換に失敗する - 2つのGUIDの場合
-
MySQLでテーブルを削除します。親行が削除または更新できません: 外部キー制約に失敗しました。
-
MySQL 接続タイムアウト。エラー SQLSTATE[HY000] [2002] 接続がタイムアウトしました 解決済み