방혁
(Department of Information Security, The University of Suwon)
,
김서현
(Department of Information Communication, The University of Suwon)
,
전상훈
(Department of Information Security, The University of Suwon)
최근 디지털 변화와 코로나19의 영향으로 온라인 활동이 급증함에 따라 대규모 데이터 처리와 유지보수의 중요성이 점점 커지고 있다. 이 연구는 데이터 저장 및 관리에 널리 사용되는 두 주요 데이터베이스 유형인 관계형 데이터베이스(RDBMS)와 비관계형 데이터베이스(NoSQL)의 성능을 비교 분석한다. 구체적으로, RDBMS의 대표 예인 MySQL과 NoSQL의 대표 예인 Redis를 사용하여 데이터 삽입, 조회, 삭제 기능의 수행 시간을 측정하고 평가했다. 실험 결과, Redis는 MySQL에 비해 데이터 삽입에서 약 5.84배, 조회에서는 약 6.61배, 삭제에서는 약 12.33배 빠른 성능을 보였다. 이 결과는 Redis가 특히 대규모 데이터 처리와 유지보수가 필요한 환경에서 뛰어난 성능을 제공함을 보여준다. 이에 따라 기업 및 온라인 서비스 제공자들은 Redis와 같은 NoSQL 데이터베이스를 선택함으로써 보다 효율적인 데이터 관리 솔루션을 확보할 수 있을 것이다. 본 연구가 데이터베이스 선택 시 데이터 처리 성능을 고려하는 데 중요한 참고 자료로 활용되기를 기대한다.
최근 디지털 변화와 코로나19의 영향으로 온라인 활동이 급증함에 따라 대규모 데이터 처리와 유지보수의 중요성이 점점 커지고 있다. 이 연구는 데이터 저장 및 관리에 널리 사용되는 두 주요 데이터베이스 유형인 관계형 데이터베이스(RDBMS)와 비관계형 데이터베이스(NoSQL)의 성능을 비교 분석한다. 구체적으로, RDBMS의 대표 예인 MySQL과 NoSQL의 대표 예인 Redis를 사용하여 데이터 삽입, 조회, 삭제 기능의 수행 시간을 측정하고 평가했다. 실험 결과, Redis는 MySQL에 비해 데이터 삽입에서 약 5.84배, 조회에서는 약 6.61배, 삭제에서는 약 12.33배 빠른 성능을 보였다. 이 결과는 Redis가 특히 대규모 데이터 처리와 유지보수가 필요한 환경에서 뛰어난 성능을 제공함을 보여준다. 이에 따라 기업 및 온라인 서비스 제공자들은 Redis와 같은 NoSQL 데이터베이스를 선택함으로써 보다 효율적인 데이터 관리 솔루션을 확보할 수 있을 것이다. 본 연구가 데이터베이스 선택 시 데이터 처리 성능을 고려하는 데 중요한 참고 자료로 활용되기를 기대한다.
As online activities have rapidly increased due to recent digital changes and the impact of COVID-19, the importance of large-scale data processing and maintenance is increasing. This study compares the performance of the two main types of databases widely used for data storage and management: Relat...
As online activities have rapidly increased due to recent digital changes and the impact of COVID-19, the importance of large-scale data processing and maintenance is increasing. This study compares the performance of the two main types of databases widely used for data storage and management: Relational Database Management Systems (RDBMS) and Non-Relational Databases (NoSQL). Specifically, we measured and evaluated the execution time of data insertion, query, and deletion functions using MySQL, a representative example of RDBMS, and Redis, a representative example of NoSQL. The experimental results showed that Redis showed performance about 5.84 times faster in data insertion, 6.61 times faster in query, and 12.33 times faster in deletion than MySQL. These results demonstrate that Redis provides superior performance, especially in environments requiring large-scale data processing and maintenance. Therefore, companies and online service providers can choose NoSQL databases such as Redis to ensure more efficient data management solutions. We hope this study will be an essential reference when selecting a database based on data processing performance.
As online activities have rapidly increased due to recent digital changes and the impact of COVID-19, the importance of large-scale data processing and maintenance is increasing. This study compares the performance of the two main types of databases widely used for data storage and management: Relational Database Management Systems (RDBMS) and Non-Relational Databases (NoSQL). Specifically, we measured and evaluated the execution time of data insertion, query, and deletion functions using MySQL, a representative example of RDBMS, and Redis, a representative example of NoSQL. The experimental results showed that Redis showed performance about 5.84 times faster in data insertion, 6.61 times faster in query, and 12.33 times faster in deletion than MySQL. These results demonstrate that Redis provides superior performance, especially in environments requiring large-scale data processing and maintenance. Therefore, companies and online service providers can choose NoSQL databases such as Redis to ensure more efficient data management solutions. We hope this study will be an essential reference when selecting a database based on data processing performance.
본 논문은 RDBMS와 NoSQL의 성능을 비교 분석한다. 이를 위해 RDBMS 대표 예인 MySQL과 NoSQL의 대표적인 예인 Redis를 활용하여 데이터 처리 함수(삽입, 조회, 삭제)의 시간을 측정하고 평가한다.
제안 방법
본 논문은 RDBMS와 NoSQL의 성능을 비교 분석한다. 이를 위해 RDBMS 대표 예인 MySQL과 NoSQL의 대표적인 예인 Redis를 활용하여 데이터 처리 함수(삽입, 조회, 삭제)의 시간을 측정하고 평가한다.
본 성능 평가는 스프링 부트(Spring Boot)와 자바(Java) 언어를 사용하여 진행한다. MySQL과 Redis의 데이터 처리 성능을 비교 평가하기 위해, 데이터 삽입, 데이터 조회, 데이터 삭제 함수를 스프링 부트 환경에서 개발한다. 보다 정확한 측정을 위하여 본 논문에서 다루는 데이터베이스 성능 측정을 위한 프로세스 이외에는 아무것도 실행하지 않는 상태로 진행한다.
MySQL과 Redis를 설치한 후 스프링 부트를 사용하여 데이터 삽입, 조회, 삭제 기능을 각각 수행하는 애플리케이션을 개발하여 MySQL 및 Redis와 상호 작용할 수 있는 데이터베이스 연결 및 쿼리를 구현한다. 이 애플리케이션을 실행하여 MySQL 및 Redis에서 각각의 기능을 10,000회씩 수행하여, 1,000회마다 평균 수행시간을 측정하여 총 10회 반복한 결과를 기록한다.
본 섹션에서는 MySQL과 Redis의 기능별 성능을 비교하고 평가한다. 표 1과 표 2의 실험 결과를 바탕으로 두 데이터베이스의 처리 성능을 분석한다.
본 논문은 대규모 데이터 처리 및 유지보수를 위한 두가지 주요 데이터베이스, MySQL과 Redis의 데이터 처리 성능을 비교 평가한다. 데이터 처리 성능 실험을 통해, Redis가 데이터 삽입, 조회, 삭제 기능에서 MySQL에 비해 우수한 성능을 보였다.
대상 데이터
본 성능 평가는 스프링 부트(Spring Boot)와 자바(Java) 언어를 사용하여 진행한다. MySQL과 Redis의 데이터 처리 성능을 비교 평가하기 위해, 데이터 삽입, 데이터 조회, 데이터 삭제 함수를 스프링 부트 환경에서 개발한다.
MySQL에 대한 데이터 처리 성능을 평가하기 위해 특정 실험을 수행한다. 이 실험에서는 데이터 삽입, 조회, 삭제 작업을 각각 10,000회 실행하며, 이 과정에서 무작위로 생성된 정수형 데이터를 사용한다. 각 함수의 성능은 1,000회 실행마다 평균 수행시간을 측정하여 기록한다.
Redis는 데이터를 Redis의 문자열 형식으로 키-값 쌍을 저장하는데, 여기서 키는 ‘key’ 문자열에 순번을 붙인 문자열이고 값은 0부터 999까지의 무작위 정수이다. 이렇게 만들어진 무작위 데이터 10,000개를 이용하여 수행시간을 측정하여 Redis의 성능을 평가한다. 각 함수의 측정 결과는 로그 파일로 저장하고 성능 평가에 사용한다.
본 실험은 Windows 11의 노트북 환경에서 진행되며, 16.0 GB의 RAM을 사용한다. 64비트 운영 체제로, x64 기반 프로세서의 시스템 종류를 사용하며 프로세서는 13th Gen Intel(R) Core(TM) i5-1340P, 1.
0 GB의 RAM을 사용한다. 64비트 운영 체제로, x64 기반 프로세서의 시스템 종류를 사용하며 프로세서는 13th Gen Intel(R) Core(TM) i5-1340P, 1.90 GHz이다.
소프트웨어 개발 환경은 Java와 스프링 부트를 이용하였고, MySQL 및 Redis의 클라이언트 라이브러리를 프로젝트에 추가하여 이 두 데이터베이스 시스템과 통신할 수 있도록 한다.
데이터처리
그리고, 각 함수의 성능 평가 실험에 소요된 시간을 측정한 후 로그 형태로 기록한다. 기록된 데이터를 통해 두 데이터베이스 시스템의 성능을 비교 분석한다.
이 실험에서는 데이터 삽입, 조회, 삭제 작업을 각각 10,000회 실행하며, 이 과정에서 무작위로 생성된 정수형 데이터를 사용한다. 각 함수의 성능은 1,000회 실행마다 평균 수행시간을 측정하여 기록한다. 이러한 측정은 총 10번 반복하여 전체적인 평균 시간을 계산한다.
각 쿼리문은 ID를 기본 키로 사용하여 데이터베이스의 성능을 향상시켰다. INSERT, UPDATE, DELETE를 사용하여 데이터 무결성 또한 지켜지도록 하였다.
RedisTemplate을 사용하여 키-값 쌍을 Redis에 저장할 수 있도록 쿼리를 구성하였다. 삽입문은 ‘redisTemplate.
본 섹션에서는 MySQL과 Redis의 기능별 성능을 비교하고 평가한다. 표 1과 표 2의 실험 결과를 바탕으로 두 데이터베이스의 처리 성능을 분석한다.
성능/효과
그러나 RDBMS를 사용하는 대부분의 웹 서비스에서는 대량의 접속 로그를 처리하는 과정에서 성능 저하 문제가 발생할 수 있다. 이 문제를 해결하기 위해, 테이블 간의 연결이 필요가 없는 데이터에 대해서는 NoSQL과 같은 메모리 기반의 데이터 저장 방식을 적용함으로써 처리 속도를 효과적으로 개선할 수 있다. 특히, 불필요한 연결이 없는 경우에는 Redis를 활용하여 데이터 처리 속도를 높일 수 있다[6].
그림 2와 같이, Column-Family, Key-Value, Document, Graph 구조로 나뉜다. 첫째, Column-Family는 전통적인 RDBMS와 같이 테이블 형태로 보이지만, RDBMS와는 다르게 행보다는 열에 데이터를 저장하는 구조다[15]. 이는 주로 대규모 빅데이터 분야에서 활용되며, 하나의 열에 방대한 양의 데이터를 추가할 수 있다.
이는 주로 대규모 빅데이터 분야에서 활용되며, 하나의 열에 방대한 양의 데이터를 추가할 수 있다. 둘째, Key-Value는 여러 종류의 NoSQL 중 가장 간단한 구조이고, Key 값과 Value 값이 쌍을 이루어 데이터를 저장한다. 저장 형태의 단순함으로 인해 뛰어난 확장성을 제공한다.
저장 형태의 단순함으로 인해 뛰어난 확장성을 제공한다. 셋째, Document 구조는 데이터를 테이블이 아닌 문서 형태로 저장하며[16], 주로 JSON과 유사한 형식으로 데이터를 저장한다. 이런 특정 문서 형태를 가지는 구조 때문에 Key-Value 구조보다 한 단계 높은 복잡성을 보인다.
이런 특정 문서 형태를 가지는 구조 때문에 Key-Value 구조보다 한 단계 높은 복잡성을 보인다. 마지막으로, Graph 구조는 NoSQL 구조 중 가장 높은 복잡도를 가진 종류이다. 주로 객체들 사이의 관계를 저장하는 것이 중요한 경우 사용한다.
그렇기에 데이터 간의 관계를 정의하지 않고, 사전에 스키마를 정의하지 않아도 데이터를 저장할 수 있는 유연성을 제공한다[18]. 데이터를 저장하는 열이, 각각 다른 이름을 가지거나 다른 데이터 형태로 존재하는 것이 가능하다. 이러한 특징은 Redis를 효율적이고 확장 가능한 데이터 저장 솔루션으로 만든다.
조회문은 ‘SELECT * FROM TEST_TABLE WHERE ID = ?’를 사용하여 해당 행의 데이터를 조회하도록 하였다. 특히 다른 데이터보다 기본 키인 ID를 사용하여 불필요한 디스크 I/O를 줄여 효율적인 탐색이 가능하도록 하였다. 삭제문은 ‘DELETE FROM TEST_TABLE WHERE ID = ?’를 사용하여 해당 행의 데이터를 지우도록 하였다.
삭제문 또한 조회문과 마찬가지로 기본 키인 ID를 사용하였다. 각 쿼리문은 ID를 기본 키로 사용하여 데이터베이스의 성능을 향상시켰다. INSERT, UPDATE, DELETE를 사용하여 데이터 무결성 또한 지켜지도록 하였다.
MySQL과 Redis를 설치한 후 스프링 부트를 사용하여 데이터 삽입, 조회, 삭제 기능을 각각 수행하는 애플리케이션을 개발하여 MySQL 및 Redis와 상호 작용할 수 있는 데이터베이스 연결 및 쿼리를 구현한다. 이 애플리케이션을 실행하여 MySQL 및 Redis에서 각각의 기능을 10,000회씩 수행하여, 1,000회마다 평균 수행시간을 측정하여 총 10회 반복한 결과를 기록한다. 이 결과를 바탕으로 두 데이터베이스의 성능을 비교 및 평가한다.
표 1은 삽입, 조회, 삭제 기능을 각각 10,000번씩 수행하고, 1,000회당 1번 평균 소요 시간을 산출한 결과를 나타낸다. 데이터 삽입은 평균 소요시간은 평균 1.3763ms, 데이터 조회는 평균 1.055ms, 데이터 삭제는 평균 1.7473ms가 걸렸다. 이 결과는 MySQL 데이터베이스의 각 기능별 처리 속도를 구체적으로 보여준다.
표 2는 Redis의 삽입, 조회, 삭제 함수에 대한 데이터 처리 성능을 보여준다. 데이터 삽입은 평균 결과가 0.2357ms, 데이터 조회는 평균 0.1595ms, 데이터 삭제는 평균 0.1417ms가 소요되었다. 이 결과는 Redis 데이터베이스의 각 기능별 처리 속도를 구체적으로 보여준다.
Redis는 데이터 처리 성능에서 MySQL에 비해 뛰어난 결과를 보여주었다. 데이터 삽입에서 Redis는 MySQL보다 약 5.
Redis는 데이터 처리 성능에서 MySQL에 비해 뛰어난 결과를 보여주었다. 데이터 삽입에서 Redis는 MySQL보다 약 5.839배 빠르며, 데이터 조회에서는 약 6.614배 더 빠른 성능을 제공하였다. 데이터 삭제 작업에서는 Redis가 MySQL보다 약 12.
614배 더 빠른 성능을 제공하였다. 데이터 삭제 작업에서는 Redis가 MySQL보다 약 12.331배 더 빠른 결과를 나타내었다. 그림 4는 MySQL과 Redis의 기능별 성능 평가 결과를 시각적으로 나타낸다.
그림 4는 MySQL과 Redis의 기능별 성능 평가 결과를 시각적으로 나타낸다. 데이터 삽입, 조회, 삭제 모두에서 Redis의 함수 수행 시간이 MySQL보다 짧은 것을 보여준다. 구체적으로, 삽입은 MySQL 대비 Redis가 5.
데이터 삽입, 조회, 삭제 모두에서 Redis의 함수 수행 시간이 MySQL보다 짧은 것을 보여준다. 구체적으로, 삽입은 MySQL 대비 Redis가 5.84배, 조회는 6.61배, 삭제에서는 12.33배 빠르고, 전체 평균으로는 7.78배 빠른 성능을 보였다. 이러한 결과는 Redis가 MySQL에 비해 데이터 처리 속도 면에서 상당한 우위를 가지고 있음을 명확히 보여준다.
78배 빠른 성능을 보였다. 이러한 결과는 Redis가 MySQL에 비해 데이터 처리 속도 면에서 상당한 우위를 가지고 있음을 명확히 보여준다.
본 논문은 대규모 데이터 처리 및 유지보수를 위한 두가지 주요 데이터베이스, MySQL과 Redis의 데이터 처리 성능을 비교 평가한다. 데이터 처리 성능 실험을 통해, Redis가 데이터 삽입, 조회, 삭제 기능에서 MySQL에 비해 우수한 성능을 보였다. Redis는 인메모리 데이터베이스 특징으로 인해, MySQL 대비 빠른 데이터 처리 속도를 제공한다.
후속연구
향후 연구에서는 Redis 성능을 더욱 향상시킬 수 있는 방안을 탐구할 것이다. 또한 다양한 데이터베이스 유형과의 성능 비교를 통해 보다 효과적인 데이터 관리 전략을 제안할 것이다.
향후 연구에서는 Redis 성능을 더욱 향상시킬 수 있는 방안을 탐구할 것이다. 또한 다양한 데이터베이스 유형과의 성능 비교를 통해 보다 효과적인 데이터 관리 전략을 제안할 것이다. 데이터 처리 성능을 고려한 최적의 데이터베이스 선택은 필수적이며, 이러한 연구를 통해 현대 디지털 환경에서 데이터 관리의 효율성을 향상시키는 데 기여할 것으로 기대한다.
또한 다양한 데이터베이스 유형과의 성능 비교를 통해 보다 효과적인 데이터 관리 전략을 제안할 것이다. 데이터 처리 성능을 고려한 최적의 데이터베이스 선택은 필수적이며, 이러한 연구를 통해 현대 디지털 환경에서 데이터 관리의 효율성을 향상시키는 데 기여할 것으로 기대한다.
참고문헌 (21)
Yoon Ju Jeong, "Internet usage time has increased due to the covid-19... Messenger usage among people in their 70s is also 'worsening'," Yeonhap News, 2021. https://yna.co.kr/view/AKR20210303084400017
Lisa Richwine, "Netflix says it has fixed outage that hit some in U.S., UK," Reuters, March 26, 2020. https://www.reuters.com/article/us-netflix-outages/netflix-says-it-has-fixed-outage-that-hit-some-in-u-s-uk-idUSKBN21C337/
Humberto Farias, "From RDB to search engines... Choosing the DB that's right for you," CIOKorea, April 25, 2018. https://www.ciokorea.com/news/38041
Jin Ok Jung, "NoSQL market growing 31.4% annually, reaching '$22.087 billion' by 2026," GTT KOREA, October 12, 2023. https://www.gttkorea.com/news/articleView.html?idxno7092
Bob Violino, "'From MongoDB to Couchbase'... Choosing NoSQL that's right for your company," CIOKorea, March 13, 2018. https://www.ciokorea.com/tags/2428/NoSQL/37551
Chul-Ho Kim, Kyeong-Won Park, and Yong-Lak Choi, "Web Service Performance Improvement with the Redis," Journal of the Korea Institute of Information and Communication Engineering, Vol. 19, No. 9, pp. 2064-2072, 2006. http://dx.doi.org/10.4093/jkda.2006.30.2.87
Cristian Andrei BARON, "NoSQL Key-Value DBs Riak and Redis," Database Systems Journal, Vol. 6, No. 4, pp. 3-10, March 3, 2015. https://www.dbjournal.ro/archive/22/22.pdf#page4
Hong-Jin Park, "A Study about Performance Evaluation of Various NoSQL Databases," Journal of the Korea Institute of Information and Communication Engineering 16-06, Vol. 9, No. 3, pp. 298-305, 2016. https://koreascience.kr/article/JAKO201621650894999.page
Seon Pil Ko, "A Study on Comparative Performance Analysis of RDBMS and NoSQL for Large Data Processing," Domestic Master's Thesis Konkuk University Graduate School of Information and Communication, 2012. https://www.riss.kr/search/detail/DetailView.do?p_mat_typebe54d9b8bc7cdb09&control_no336823cd83ad1281ffe0bdc3ef48d419&keywordrdbms%20nosql
Seung Hwan Lee, Jae Min Yun, Donghyun Kwon, Sung Hyun Lee, Dae Gyu Hwang, Ji Weon Kim, and Se Jin Park, "MongoDB, MySQL Performance Comparison for Blind Date App Development," Proceedings of KIIT Conference, pp.1063-1067, 2023. https://www.dbpia.co.kr/journal/articleDetail?nodeIdNODE11485680
Satya Pasupuleti, "Understanding Schema in SQL," Hackernoon, June 15, 2023. https://hackernoon.com/understanding-schema-in-sql
Manuel Silverio, "What Is a Relational Database?," Builtin, December 21, 2022. https://builtin.com/data-science/relational-database
Peter Wayner, "8 Disadvantages of MySQL," CIOKorea, July 17, 2015. https://ciokorea.com/news/26043
Denis Larionov, "NoSQL: System Design Cheat Sheet," Hackernoon, October 31, 2023. https://hackernoon.com/nosql-system-design-cheat-sheet
Alex Williams, "NoSQL Database Types Explained: Column-Oriented Databases," TechTarget, September 22, 2021. https://www.techtarget.com/searchdatamanagement/tip/NoSQL-database-types-explained-Column-oriented-databases
Matthew Tyson, "'Invitation to NoSQL' Introduction to MongoDB for Developers," IT World, July 7, 2021, https://itworld.co.kr/news/200094
Alex Williams, "Key-Value Databases, Explained," KDnuggets, October 4, 2022. https://kdnuggets.com/2021/04/nosql-explained-understanding-key-value-databases.html
Serdar Yegulalp, "Cloud Scale!... NoSQL Compared to SQL," CIOKorea, June 28, 2022. https://ciokorea.com/tags/1988/SQL/242074
A. Bhushan, P. Rastogi, H. K. Sharma and M. E. Ahmed, "I/O and memory management: Two keys for tuning RDBMS," 2016 2nd International Conference on Next Generation Computing Technologies(NGCT), Dehradun, pp. 208-214, 2016. https://ieeexplore.ieee.org/abstract/document/7877416
A. Bhushan, P. Rastogi, H. K. Sharma and M. E. Ahmed, "A Study about Performance Evaluation of Various NoSQL Databases," Journal of the Korean Society of Information, Electronics and Communication Technology Vol. 9, No. 3, pp. 298-305, 2016. https://www.dbpia.co.kr/journal/articleDetail?nodeIdNODE06696379
Eun Ki Kim, "Research on Utilizing NoSQL by Comparison of Processing Large Scale Data in MongoDB and MySQL," Domestic Master's Thesis Soongsil University, 2016. https://www.dbpia.co.kr/journal/detail?nodeIdT14144757
이 논문을 인용한 문헌
활용도 분석정보
상세보기
다운로드
내보내기
활용도 Top5 논문
해당 논문의 주제분야에서 활용도가 높은 상위 5개 콘텐츠를 보여줍니다. 더보기 버튼을 클릭하시면 더 많은 관련자료를 살펴볼 수 있습니다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.