전체글114 MySQL 실행계획이란? 목차MySQL 실행계획이란?어떤 정보를 제공하는지?결론1. MySQL 실행계획이란?실행계획은 MySQL 서버가 쿼리를 처리하는 방법을 설명한다.쿼리를 실행하면 MySQL 옵티마이저가 최적의 실행 계획을 결정하여 데이터를 검색하거나 조작하는 방법을 결정한다. 최적화 과정은 쿼리의 효율성과 성능을 향상시키는 데 도움을 준다.2. 어떤 정보를 제공하는지?인덱스 사용실행 계획이 적절한 인덱스를 사용하는지 여부가 중요하다. 쿼리에서 필요한 조건에 따라 적절한 인덱스를 사용하면 데이터 검색이 빨라지고 성능이 향상되는 반면 인덱스를 사용하지 않거나 비효율적으로 사용하는 경우 데이터베이스가 더 많은 리소스를 사용하고 성능 저하가 발생할 수 있게 된다.조인 방법여러 테이블을 조인해야 하는 경우, 쿼리 옵티마이저는 최적의.. 2023. 11. 20. 스프링 AOP(Aspect Oriented Programming) 목차AOP(Aspect Oriented Programming)란?AOP 용어스프링 AOP 동작과정1. AOP(Aspect Oriented Programming)란?AOP는 관점지향프로그래밍을 의미한다.비즈니스 로직으로부터 중복된 관심사를 분리하는 것에 목적을 둔다. 애플리케이션에서 코드가 중복되고, 강력하게 결합되어 있어 다른 로직과 분리할 수 없는 애플리케이션 로직. ex) 로깅, 보안 트랜잭션 등등즉, AOP란 부가기능을 따로 관리하는 것을 의미한다.장점전체 코드 기반에 흩어져 있는 관심 사항이 하나의 장소로 응집한다.자신의 주요 관심사항에 대한 코드만 포함하고 있기에 코드가 깔끔해진다.결국, 객체지향적으로 코드를 짤 수 있게 도우며 유지보수가 용이해진다.2. AOP 용어Target : 부가기능을 부.. 2023. 11. 17. 공유 락(shared lock) vs 배타 락(exclusive lock) 목차개요공유 락(shared lock)배타 락(exclusive lock)결론1. 개요DBMS에서 데이터에 대한 동시 접근이 발생한 경우, 일관성과 무결성을 지키기 위해 해당 데이터에 잠금을 걸 수 있다. 이 때 select 가능 여부에 따라 크게 공유 락과 배타 락으로 나누게 된다.2. 공유 락(shared lock)공유 락이 걸린 데이터에 대해서는 읽기 연산(SELECT)만 실행 O, 쓰기 연산(WRITE)은 실행 X. 공유 락을 사용하면, 조회한 데이터가 트랜잭션 내내 변경되지 않음을 보장한다.즉, 공유 락이 걸린 데이터는 다른 트랜잭션도 똑같이 공유 락을 획득할 수 있으나, 배타 락은 획득할 수 없다. 공유 락이 걸려도 읽기 작업은 가능하다는 뜻이다.3. 배타 락(exclusive lock)데이터.. 2023. 11. 16. properties vs yml 목차개요propertiesymlproperties vs yml결론1. 개요우리는 데이터베이스와 관련된 설정이나 스프링과 관련 설정등을 할때 주로 저 두개를 많이 사용하게 된다.최근 프로젝트나 많은 오픈 소스에서는 properties보다 yml을 많이 사용하고 있는 추세이다. 어떠한 차이점으로 인해 많은 프로젝트들이 yml을 선호하는지 알아보려고 한다.2. properties스프링부트가 애플리케이션을 구동할때 자동으로 로딩하는 파일이다.key - value 형식으로 값을 정의하면 애플리케이션에 참조하여 사용할 수 있다.spring.h2.console.path=/h2-console spring.datasource.url=jdbc:h2:~/test spring.datasource.driverClassName=.. 2023. 11. 15. Redis란? 목차Redis란?Redis의 특징동시성 Race Condition 해결결론1. Redis란?REDIS는 REmote DIctionary Server의 약자로 외부에서 사용 가능한 Key-Value 쌍의 해시 맵 형태의 서버라고 생각할 수 있다.In-Memory 데이터베이스이며 다양한 데이터 구조체를 지원한다.디스크에 데이터를 쓰는 구조가 아니라 메모리에서 데이터를 처리하기 때문에 작업 속도가 상당히 빠르다.즉, Redis는 고성능 키-값 저장소로서 String, list, hash, set, sorted set 등의 자료 구조를 지원하는 NoSQL이다.2. Redis의 특징영속성을 지원하는 인 메모리 데이터 저장소다양한 자료 구조를 지원함.싱글 스레드 방식으로 인해 연산을 원자적으로 수행이 가능함.읽기 .. 2023. 11. 14. MySQL Index에 대해 알아보자 개요Index란?Index 선정 기준Index 동작 방식결론1. 개요MySQL은 데이터를 검색할 때 첫 번째 필드부터 차례대로 테이블 전체를 검색하는데 테이블이 크면 클수록 데이터를 탐색하는 시간도 많이 늘어나게 된다.하지만, 인덱스를 사용하면 테이블 전체를 읽지 않아도 검색과 질의에 대한 처리가 빠르게 이루어진다.2. Index란?DB 테이블에서 원하는 데이터를 빠르게 검색하고 조회하기 위해 사용되는 데이터 구조이다.인덱스가 없더라도 데이터베이스를 '작동' 하는데 있어서는 문제는 없다.하지만 데이터베이스의 크기가 억대 단위로 크면 클 수록, 인덱스가 반드시 필요해진다. 인덱스는 데이터베이스의 성능(속도)를 크게 좌우하는 요소이기 때문이다.따라서, 인덱스를 사용하는 SQL을 만들어 효율적으로 사용한다면 .. 2023. 11. 7. 이전 1 ··· 8 9 10 11 12 13 14 ··· 19 다음