私はこの単純なテーブルMySQLの悪いパフォーマンス
CREATE TABLE `user_did_something` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`something_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`active` int(1) NOT NULL DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Indexes for table `user_did something`
ALTER TABLE `user_did_something`
ADD PRIMARY KEY (`id`);
を持っていると私は実行のための時間は〜70msである
INSERT INTO user_did_something (something_id, user_id) VALUES (1,11)
に挿入しようとします。
異なるマシンで同じ構造をテストすると、実行時間は約3msです。
追加情報:
バージョン
10.0.28-MariaDB-0ubuntu0.16.04
テーブルには、行
インデックスのみがプライマリであるカラム
id
するためのものであるありませんでした。
これをデバッグする方法はわかりません。オンラインでいくつかのものを読んで、すべてを再開しましたが、結果は同じです。
私はマシンにmysqlサーバを再インストールする必要なしに、このようなものをデバッグする方法に関するガイダンスを探しています。
あなたの 'CREATE TABLE'はあなたが' PRIMARY KEY(id) 'を持っていると言っていません。 'SHOW CREATE TABLE'をもう一度実行してください。 –
他のクエリが同じテーブルに同時に触れている可能性がありますか?サーバーを再起動した直後の70msで、テーブルがまだ開かれていなかった場合、およびまだキャッシュされていないその他のものがあった場合。 –
@RickJames質問を編集しました。サーバーはテスト用であり、クエリを実行している間は何もテーブルに触れていません。再起動せずに2日後にテストした後、再起動後もテストしました。クエリには約70〜120ミリ秒かかります。ほとんどの場合、約70msかかります。 –