나는 약 1 분 정도 걸리는 크론 작업 (15 분마다)을 실행 중이다. 그것은 API 호출을 많이 만들고 데이터를 데이터베이스에 저장합니다.새 DB 연결을 만들지 여부
지금 나는 처음에 mysql 연결을 만들고 코드를 통해 동일한 연결을 사용합니다. 대부분의 경우 API 호출을 보내는 데 소비됩니다.
데이터를 저장할 때 (아래)에만 새 데이터베이스 연결을 만드는 것이 더 효율적입니까?
- 는
- 고토에게 새로운 DB 연결
- 실행 쿼리를 작성 완료하는 데 1
[편집] 여기 MySQL의 보고서를 API 호출에 대한 마지막 연결
1 MySQL 5.1.26-rc-5.1.26r uptime 0 1:8:58 Tue Jun 15 21:25:03 2010
2
3 __ Key _________________________________________________________________
4 Buffer used 33.00k of 24.00M %Used: 0.13
5 Current 4.52M %Usage: 18.84
6 Write hit 33.33%
7 Read hit 69.16%
8
9 __ Questions ___________________________________________________________
10 Total 1.75k 0.4/s
11 COM_QUIT 319.92k 77.3/s %Total: 18312.
12 -Unknown 319.90k 77.3/s 18311.
13 DMS 1.53k 0.4/s 87.58
14 Com_ 199 0.0/s 11.39
15 QC Hits 1 0.0/s 0.06
16 Slow 144 0.0/s 8.24 %DMS: 9.41
17 DMS 1.53k 0.4/s 87.58
18 SELECT 1.22k 0.3/s 69.83 79.74
19 INSERT 155 0.0/s 8.87 10.13
20 UPDATE 155 0.0/s 8.87 10.13
21 REPLACE 0 0/s 0.00 0.00
22 DELETE 0 0/s 0.00 0.00
23 Com_ 199 0.0/s 11.39
24 check 86 0.0/s 4.92
25 show_status 41 0.0/s 2.35
26 set_option 23 0.0/s 1.32
27
28 __ SELECT and Sort _____________________________________________________
29 Scan 653 0.2/s %SELECT: 53.52
30 Range 0 0/s 0.00
31 Full join 0 0/s 0.00
32 Range check 0 0/s 0.00
33 Full rng join 0 0/s 0.00
34 Sort scan 0 0/s
35 Sort range 590 0.1/s
36 Sort mrg pass 0 0/s
37
38 __ Query Cache _________________________________________________________
39 Memory usage 43.57k of 12.00M %Used: 0.35
40 Block Fragmnt 25.35%
41 Hits 1 0.0/s
42 Inserts 916 0.2/s
43 Insrt:Prune 916:1 0.2/s
44 Hit:Insert 0.00:1
45
46 __ Table Locks _________________________________________________________
47 Waited 0 0/s %Total: 0.00
48 Immediate 1.65k 0.4/s
49
50 __ Tables ______________________________________________________________
51 Open 47 of 1024 %Cache: 4.59
52 Opened 54 0.0/s
53
54 __ Connections _________________________________________________________
55 Max used 3 of 60 %Max: 5.00
56 Total 319.92k 77.3/s
57
58 __ Created Temp ________________________________________________________
59 Disk table 2 0.0/s
60 Table 28 0.0/s
61 File 5 0.0/s
62
63 __ Threads _____________________________________________________________
64 Running 3 of 3
65 Cached 0 of 4 %Hit: 100
66 Created 3 0.0/s
67 Slow 0 0/s
68
69 __ Aborted _____________________________________________________________
70 Clients 0 0/s
71 Connects 319.86k 77.3/s
72
73 __ Bytes _______________________________________________________________
74 Sent 52.36M 12.7k/s
75 Received 23.17M 5.6k/s
필요할 때마다 새 DB 연결을 만들고 닫는 것이 좋습니다. 이 일을하는 동안 어떤 문제도 예상하지 않습니다. 항상 확인하는 것이 mysql에서 "show processlist"를 통해 연결이 끊어지는 것을 확인하는 것이 좋습니다. –
다른 사람들의 말. 너무 많은 요소 (연결 수, 연결 초기화 비용, API 호출 수, 평균 API 호출 시간 및 평균 쿼리 시간 등) –
1 분 동안 열린 상태에서 연결이 "끊어지는"위험이 있습니까? 무선 네트워크에서 몇 개의 패킷이 손실되고 연결이 끊어지면 그때부터 전체 작업이 취소 된 것처럼 말입니다. –