database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 31454 게시물 읽기
No. 31454
mysql 과부하
작성자
즐겨즐겨(cookies3143)
작성일
2024-04-14 03:52
조회수
208

안녕하세요. 이번에 vue와 node js로 입금 관리 사이트를 만들어봤습니다.

초반에 로그가 4~50만건이었을땐 별로 cpu 점유율이 높게 나타나지 않았는데 70만건 이상부터 갑작스레 동시접속자가 많아지고 새로고침 횟수가 많아질때면 cpu가 100%까지 올라가는 현상이 잦아졌습니다.

 

현재 쓰고 있는 쿼리는 게시판 페이지네이션을 통해 다음과 같이 쿼리문을 짜봤는데요. 한번 보시고 피드백해주시면 너무나 감사드리겠습니다..ㅠㅠ

 

SELECT co_name, name, price, text, update_time FROM bank_logs WHERE co_name = 'cookie' AND DATE(update_time) = '2024-04-14' order by id DESC LIMIT 40 OFFSET 0;

그리고 현재 mariadb my.ini 설정은 아래와 같습니다.

sort_buffer_size=8M
join_buffer_size=8M
read_buffer_size=8M
read_rnd_buffer_size=16M
tmp_table_size=64M
max_heap_table_size=64M
key_buffer_size=8G
innodb_buffer_pool_size=8192M
innodb_thread_concurrency=16
innodb_thread_sleep_delay=0
innodb_commit_concurrency=20
innodb_log_file_size=512M
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=0
innodb_sort_buffer_size=8M
innodb_concurrency_tickets=1000
innodb_io_capacity=3000
innodb_read_io_threads=16
innodb_write_io_threads=16
innodb_max_dirty_pages_pct=90
innodb_lock_wait_timeout=120
#query_cache_size=0
table_open_cache=4000
table_open_cache_instances=16
max_connections=2000
max_allowed_packet=1G
max_prepared_stmt_count=256K
wait_timeout=2147483
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake

#Slow_Query 설정_20201215
query_cache_size = 128M
slow_query_log=1
long_query_time=1

이 글에 대한 댓글이 총 3건 있습니다.

bank_logs 테이블에 인덱스가 있는지 확인해보세요.

update_time이 varchar 인가요? 인덱스가 어떻게 만들어져 있는지 확인해야겠지만DATE(update_time) 과 같이 사용하면 인덱스 사용이 안되고 테이블 전체 스캔 될 수 있습니다.

update_time = '2024-04-14' 또는 원래 포맷에 맞는 값으로 해보세요~

 

정상규(pajama)님이 2024-04-14 07:54에 작성한 댓글입니다.

update_time은 varchar 맞습니다!

즐겨즐겨(cookies3143)님이 2024-04-14 11:42에 작성한 댓글입니다.

첫 댓글 답변처럼 DATE(update_time) = '2024-04-14' 부분을

update_time = '2024-04-14' 로 변환하세요.

 

류신(kurishin)님이 2024-04-23 14:59에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
31454mysql 과부하 [3]
즐겨즐겨
2024-04-14
208
31452좀 더 효율적인 쿼리가 없을지요? [5]
즐겨찾기
2024-04-05
235
31448왜 MySQL에서는 인덱싱에 B+Tree가 아닌 B-Tree를 사용할까요 [2]
이진호
2024-03-29
190
31447시간범위에 해당하는 데이터 가져오기 [2]
타자치는사람
2024-03-28
181
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다