質問するログイン新規登録

回答編集履歴

1

ソートがインメモリにならない条件について追記

2017/01/30 03:52

投稿

tacsheaven
tacsheaven

スコア13709

answer CHANGED
@@ -4,4 +4,10 @@
4
4
  EXPLAIN select url, SUM(`count`) AS count_sum from urls group by url
5
5
  ```
6
6
 
7
- を使って、クエリー解析を行ってみてからになるかと思います。
7
+ を使って、クエリー解析を行ってみてからになるかと思います。
8
+
9
+ 追記:
10
+ [マニュアル](https://dev.mysql.com/doc/refman/5.6/ja/internal-temporary-tables.html)によると、
11
+ > GROUP BY または DISTINCT 句内の、バイナリ文字列の場合に 512 バイトまたは非バイナリ文字列の場合に 512 文字より大きい文字列カラムの存在。(MySQL 5.6.15 より前のこの制限は、文字列の型に関係なく 512 バイトです。)
12
+
13
+ url が varchar(512) を超えている、もしくは text 型である場合、ソートをインメモリで行わず file を介するため、遅くなります。