AWSの新機能です。AWS RDSテーブルインデックス付きでも読み込みが遅い
私は2台のサーバーを持っています。 1つは自分のサイトサーバー(自分のコンピュータではなく、私のコンピュータではなく、サーバーAと呼ぶ)ともう1つはAWSです。サイトサーバーからAWSサーバーにテーブルを移行しています。
私の問題は、テーブルの読み取りは、AWSサーバーの遅いです。レイテンシがDB部分から来ているかどうか、またはAWS設定から解決できるかどうかはわかりません(もし私がここでできることがあれば)。
サーバAは(バージョンがわからない)のMySQLに基づいており、AWSはオーロラに基づいています。
私のクエリはこれです:私は、これはインデックスの問題であれば見つけることを試みたが、次のようにインデックス情報がサーバAとAWSサーバと同じである
SELECT sessionId, sequence, timestamp, source, sourceType, repId,
content, contentType FROM chatLines
WHERE sessionId=%s ORDER BY sequence ASC;
:ここ
Table, Non_unique, Key_name, Seq_in_index, Column_name, Collation, Cardinality, Index_type
chatLines, 0, PRIMARY, 1, id, A, 2492436 , BTREE
chatLines, 0, IDX_CHATLINES_SESSIONID_SEQUENCE, 1, sessionId, A, 166162, BTREE
chatLines 0 IDX_CHATLINES_SESSIONID_SEQUENCE 2 sequence A 2492436 BTREE
chatLines 1 IDX_CHATLINES_SESSIONID_TIMESTAMP 1 sessionId A 166162 BTREE
chatLines 1 IDX_CHATLINES_SESSIONID_TIMESTAMP 2 timestamp A 2492436 BTREE
chatLines 1 IDX_CHATLINES_SESSIONID_BYTYPE 1 sessionId A 207703 BTREE
chatLines 1 IDX_CHATLINES_SESSIONID_BYTYPE 2 sourceType A 623109 BTREE
です私はテーブルを作成するために使用したテーブルのスキーマです。ここで
explain select * from chatLines
where sessionId = 'ID1560302010' order by sequence asc
1. Server A
id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra
1, SIMPLE, chatLines, ref, IDX_CHATLINES_SESSIONID_SEQUENCE,IDX_CHATLINES_SESSIONID_TIMESTAMP,IDX_CHATLINES_SESSIONID_BYTYPE, IDX_CHATLINES_SESSIONID_SEQUENCE, 62, const, 16, Using where
2. AWS
id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra
1, SIMPLE, chatLines, ref, IDX_CHATLINES_SESSIONID_SEQUENCE,IDX_CHATLINES_SESSIONID_TIMESTAMP,IDX_CHATLINES_SESSIONID_BYTYPE, IDX_CHATLINES_SESSIONID_SEQUENCE, 62, const, 16,**Using index condition;** Using where
は、AWSのパラメータ設定(私はそれが重要であると考えている)である:ここでは
-- Table structure for table `chatLines`
--
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `chatLines` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`sessionId` varchar(20) NOT NULL,
`sequence` smallint(6) NOT NULL,
`timestamp` datetime NOT NULL,
`source` varchar(100) NOT NULL,
`sourceType` char(1) NOT NULL,
`repId` varchar(20) DEFAULT NULL,
`content` mediumtext,
`contentType` char(1) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `IDX_CHATLINES_SESSIONID_SEQUENCE` (`sessionId`,`sequence`),
KEY `IDX_CHATLINES_SESSIONID_TIMESTAMP` (`sessionId`,`timestamp`),
KEY `IDX_CHATLINES_SESSIONID_BYTYPE` (`sessionId`,`sourceType`),
CONSTRAINT `chatLines_ibfk_1` FOREIGN KEY (`sessionId`)
REFERENCES `chatSessions` (`sessionId`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=308232770 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
が選択結果をEXPLAINである>輸入スキーマ - 私は、MySQL Workbenchのからこれを得ました。 "SELECT" は、AWSのために遅いことに注意してください:
query_cache_size:{DBInstanceClassMemory/24}
query_cache_type:1
innodb_buffer_pool_size:{DBInstanceClassMemory * 3/4}
スイッチinnodb_adaptive_hash_index = 1
スキーマはどのようなものですか?質問を編集して、 'SHOW CREATE TABLE chatLines'を追加してください。 – tadman
質問された質問には十分な情報がありません。 (質問がありましたか?)EC2インスタンスのサイズ変更、 'chatlines'テーブル(InnoDBまたはMyISAM)のストレージエンジン、実行しているMySQLのバージョンなどについては言及していません.MySQLコミュニティがあると推測していますLinuxにインストールされたエディション。そして、私たちは、あなたがどのように「テーブル読み取りが遅い」と測定/判断しているのか分かりません。私はパフォーマンスの問題があることを理解していますが、この「質問」が提示される方法は、回答する方法がありません。 – spencer7593
あなたの 'EXPLAIN SELECT ... 'の結果を投稿してください – Sylwit