回答編集履歴
5
修正
answer
CHANGED
@@ -25,5 +25,4 @@
|
|
25
25
|
[json型でもindexが貼りたい!](https://qiita.com/szkennel/items/369885242b5d95f15d5d)
|
26
26
|
但し、扱えるのは5.7以降です。
|
27
27
|
|
28
|
-
それから、全文検索で検索対象として1万件
|
28
|
+
それから、全文検索で検索対象として1万件想定していないなら、一定件数でページングするなどの仕組みでのSQLで検証すべきです。
|
29
|
-
一定件数でページングするなどを行えばSQLで突合する件数を減らすことができ、効果は望めます。
|
4
追記
answer
CHANGED
@@ -23,4 +23,7 @@
|
|
23
23
|
--
|
24
24
|
tagmapの指すテーブルにtagmapの代わりにJson型でタグを持たせる方法だと、検索対象の件数自体を減らせるので効果があるかもしれません。
|
25
25
|
[json型でもindexが貼りたい!](https://qiita.com/szkennel/items/369885242b5d95f15d5d)
|
26
|
-
但し、扱えるのは5.7以降です。
|
26
|
+
但し、扱えるのは5.7以降です。
|
27
|
+
|
28
|
+
それから、全文検索で検索対象として1万件返してもユーザーが見るわけありません。
|
29
|
+
一定件数でページングするなどを行えばSQLで突合する件数を減らすことができ、効果は望めます。
|
3
追記
answer
CHANGED
@@ -17,4 +17,10 @@
|
|
17
17
|
[8.9.3.1 クエリーキャッシュの動作](https://dev.mysql.com/doc/refman/5.6/ja/query-cache-operation.html)
|
18
18
|
> テーブルが変更された場合、そのテーブルを使用するキャッシュされたすべてのクエリーが無効になり、キャッシュから削除されます。これには、変更されたテーブルにマップされた MERGE テーブルを使用するクエリーも含まれます。テーブルは、INSERT、UPDATE、DELETE、TRUNCATE TABLE、ALTER TABLE、DROP TABLE、または DROP DATABASE などの多くの種類のステートメントによって変更できます。
|
19
19
|
|
20
|
-
頻繁に更新されるテーブルのキャッシュは意味がありません。
|
20
|
+
頻繁に更新されるテーブルのキャッシュは意味がありません。
|
21
|
+
|
22
|
+
追記
|
23
|
+
--
|
24
|
+
tagmapの指すテーブルにtagmapの代わりにJson型でタグを持たせる方法だと、検索対象の件数自体を減らせるので効果があるかもしれません。
|
25
|
+
[json型でもindexが貼りたい!](https://qiita.com/szkennel/items/369885242b5d95f15d5d)
|
26
|
+
但し、扱えるのは5.7以降です。
|
2
追記
answer
CHANGED
@@ -12,4 +12,9 @@
|
|
12
12
|
|
13
13
|
バッチ処理でもないのに10億件中から1万件取り出す想定は何なのでしょう?
|
14
14
|
|
15
|
-
キャッシュ以前に、10億件の持ち方と取り出す単位など設計の見直しだと感じます。
|
15
|
+
キャッシュ以前に、10億件の持ち方と取り出す単位など設計の見直しだと感じます。
|
16
|
+
キャッシュすることに意味が無い理由については、以下です。
|
17
|
+
[8.9.3.1 クエリーキャッシュの動作](https://dev.mysql.com/doc/refman/5.6/ja/query-cache-operation.html)
|
18
|
+
> テーブルが変更された場合、そのテーブルを使用するキャッシュされたすべてのクエリーが無効になり、キャッシュから削除されます。これには、変更されたテーブルにマップされた MERGE テーブルを使用するクエリーも含まれます。テーブルは、INSERT、UPDATE、DELETE、TRUNCATE TABLE、ALTER TABLE、DROP TABLE、または DROP DATABASE などの多くの種類のステートメントによって変更できます。
|
19
|
+
|
20
|
+
頻繁に更新されるテーブルのキャッシュは意味がありません。
|
1
追記
answer
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
[8.9.3 MySQL クエリーキャッシュ](https://dev.mysql.com/doc/refman/5.6/ja/query-cache.html)
|
2
2
|
上記は確認されていますか?
|
3
|
+
> クエリーキャッシュは、あまり頻繁に変更されないテーブルがあり、それに対してサーバーが多くの同一のクエリーを受け取る環境で役立つことがあります。
|
3
4
|
|
5
|
+
上記のこの要件を満たしたものですか?10億件を想定したテーブルがそうであるようには思えません。
|
4
|
-
仮に10億件のデータを全てキャッシュに格納すれば、2回目の性能が出せるとは言い切れません。
|
6
|
+
また、仮に10億件のデータを全てキャッシュに格納すれば、2回目の性能が出せるとは言い切れません。
|
5
7
|
逆に遅くなる場合もあります。
|
6
8
|
|
7
9
|
> パフォーマンスのこれ以上のチューニングが難しく(パーティションなどが使いづらい)
|