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