質問編集履歴

1

質問内容

2018/06/25 07:54

投稿

youji999
youji999

スコア9

test CHANGED
@@ -1 +1 @@
1
- cakephp3での大量データのinsert処理について
1
+ cakePHP3での大量データのinsert処理について
test CHANGED
@@ -1,14 +1,10 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- cakephp3で5000レコードあるCSVデータのインサート処理を行いたいのですが、3000件まではなんとかインサートされるのですが、それを超えると、ブラウザの処理が止まってしまい処理が終了しない形になります。
3
+ cakephp3で5000レコードあるCSVデータのインサート処理を行いたいのですが、3000件まではなんとかインサートされるのですが、それを超えると、ブラウザの処理が止まってしまい処理が終了しない形になります。30秒以上たっても応答がないです。
4
4
 
5
5
 
6
6
 
7
- ちなみに、同じレコードinsert文を作って、phpmyadminで
7
+ ちなみに、同じレコード数でinsert文を作って、phpmyadminでインサートすると、3秒ほどで登録が完了します。
8
-
9
-
10
-
11
-
12
8
 
13
9
 
14
10
 
@@ -18,7 +14,11 @@
18
14
 
19
15
  ```
20
16
 
17
+ ブラウザがタイムアウトして、「このページは動作しません」という形になり、ブラウザの処理がストップする。
18
+
21
- エラメッセージ
19
+ 当然デタは登録されてないです。
20
+
21
+
22
22
 
23
23
  ```
24
24
 
@@ -28,74 +28,74 @@
28
28
 
29
29
 
30
30
 
31
- ```ここに言語名を入力
32
-
33
- ソースコード
34
-
35
31
  ```
36
32
 
37
33
 
38
34
 
35
+ $articles = TableRegistry::get('Articles');
36
+
37
+ // 保存するデータ(5千件)
38
+
39
- ### 試したこと
39
+ $data = [
40
+
41
+ [
42
+
43
+ 'title' => 'First post',
44
+
45
+ 'published' => 1
46
+
47
+ ],
48
+
49
+ [
50
+
51
+ 'title' => 'Second post',
52
+
53
+ 'published' => 1
54
+
55
+ ],
40
56
 
41
57
 
42
58
 
59
+ (5千件)
60
+
61
+ ];
62
+
43
- ここに問題に対して試したことを記載してください。
63
+ //$dataは実際はループで作成
44
64
 
45
65
 
46
66
 
67
+ // 実行クエリ
68
+
69
+ $query = $articles->query();
70
+
71
+ $query->insert(['title', 'published']);
72
+
47
- ### 補足情報(FW/ツールバージョンなど)
73
+ // data数だけvalues追加
74
+
75
+ foreach ($data as $d) {
76
+
77
+ $query->values($d);
78
+
79
+ }
80
+
81
+ // 実行
82
+
83
+ $query->execute();
84
+
85
+ ```
86
+
87
+ 上記ソースは、https://qiita.com/KeijiYONEDA/items/8c2f0e2a8f9cfbf08eeb
88
+
89
+ を参考にしてますが、他に何か設定等必要ないのでしょうか。
48
90
 
49
91
 
50
92
 
51
- ここにより詳細情報を記載てくい。
93
+ たかご存知の方がいらっゃいましたら、ご教授いたけなでしょうか
52
-
53
- ### 前提・実現したいこと
54
94
 
55
95
 
56
96
 
57
- ここに質問の内容を詳しく書いてください。
58
-
59
- (例)PHP(CakePHP)●●テム作っています。
97
+ もしくは上記やり方でなくてもいいので、処理ピード早い方法教えていただければ助かります。
60
-
61
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
62
98
 
63
99
 
64
100
 
65
- ### 発生している問題・エラーメッセージ
66
-
67
-
68
-
69
- ```
70
-
71
- エラーメッセージ
72
-
73
- ```
74
-
75
-
76
-
77
- ### 該当のソースコード
78
-
79
-
80
-
81
- ```ここに言語名を入力
82
-
83
- ソースコード
84
-
85
- ```
86
-
87
-
88
-
89
- ### 試したこと
90
-
91
-
92
-
93
- ここに問題に対して試したことを記載してください。
94
-
95
-
96
-
97
- ### 補足情報(FW/ツールのバージョンなど)
98
-
99
-
100
-
101
- ここにり詳細な情報を記載ださい。
101
+ 以上ですが、しくお願いたします