Database
-
[MySQL] 옵티마이저Database/데이터베이스 2024. 12. 16. 12:54
MySQL 아키텍처MySQL엔진: SQL 문장 분석 / 최적화스토리지 엔진: 데이터 저장 / 조회 쿼리 실행 과정 1SQL 파서: SQL문을 잘게 쪼개 MySQL 서버가 이해할 수 있는 수준으로 분리SQL 옵티마이저: 파스 트리를 확인하며 쿼리 최적화 및 실행계획 수립데이터 읽기/쓰기: 결정된 정보를 통해 스토리지 엔진에서 필요한 데이터 가져오기 실행 계획이란?옵티마이저가 결정한 최적의 쿼리 실행 방법EXPLAIN SELECT *FROM memberWHERE id = 1; 실행계획 분석하기실행계획 컬럼 key: possible_keys 컬럼에 적힌 후보 인덱스 중 실제로 선택한 인덱스실행계획 컬럼 rows쿼리를 실행하기 위해 조사해야 하는 행의 수rows 값을 줄이는 것이 쿼리 튜닝의 핵심추정값이라 정..
-
[MySQL] ST_Distance_Sphere 함수Database/데이터베이스 2024. 11. 11. 02:41
ST_Distance_Sphere 함수란?MySQL의 ST_Distance_Sphere 함수는 두 지점 간의 대권 거리(Greate Circle Distance) 를 계산하는데 사용됩니다.이 함수는 지구를 완벽한 구(sphere)로 간주하고 두 지점의 위도와 경도를 기반으로 두 지점 사이의 거리를 미터(meter) 단위로 반환합니다.함수 정의ST_Distance_Sphere(point1, point2)point1: 첫번째 지점의 위치(Point 객체, 위도와 경도를 포함)point2: 두번째 지점의 위치(Point 객체)반환 값: 두 지점 간의 거리 (미터 단위)특징구형 지구 모델: ST_Distance_Sphere는 지구를 구(sphere)로 가정하고 계산하기 때문에 지표면의 실제 곡률을 반영하지 않음..
-
[MySQL] 스토어드 프로시저(Stored Procedure)Database/데이터베이스 2024. 8. 28. 21:43
개요평소 SQL문을 사용할 때 쿼리문을 자주 사용하는데 특정한 경우 프로시저를 사용하면 편리성 면에서 효과가 있음MySQL 프로시저(Procedure)는 저장된 프로시저로도 알려져 있으며, 서버에 저장된 하나 이상의 SQL 문장의 집합프로시저는 여러 SQL문을 모아서 재사용할 수 있는 방법을 제공하며 데이터베이스 작업의 자동화, 코드 재사용성 향상, 그리고 복잡한 로직을 캡슐화하는데 유용함프로시저의 주요 특징1.입력 및 출력 매개변수 지원프로시저는 'IN', 'OUT', 'INOUT' 매개변수를 사용할 수 있음IN: 호출할 때 전달되는 입력 매개변수OUT: 프로시저가 반환하는 출려 ㄱ매개변수INOUT: 입력과 출력을 모두 담당하는 매개변수2. SQL 문장의 집합여러 SQL 문을 포함할 수 있으며, 복잡한..
-
[데이터베이스] RDBMS vs NoSQLDatabase/데이터베이스 2022. 10. 9. 19:59
이번 포스팅에서는 RDBMS 와 NoSQL의 차이점에 대해 알아보겠습니다. 차이점을 알아보기에 앞서 기본적인 개념부터 정리해보겠습니다. Database와 DBMS 그리고 SQL - Database: 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리하는 데이터 집합 - DBMS: DataBase Management System의 약자로서 사용자와 데이터베이스 사이에서 사용자의 요청을 해석하여 데이터베이스에 저장된 정보를 관리할 수 있도록 해주는 소프트웨어 - SQL: Structured Query Language의 약자로서 관계형 데이테베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이며 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성..
-
자주 사용하는 SQL Query 2Database/데이터베이스 2018. 12. 1. 21:24
[DataBase] 자주 사용하는 SQL Query 2 [데이터 조작 함수 사용하기] # 문자 조작 함수 # UPPER() 는 문자를 모두 대문자로 변환한다 SELECT vend_name, UPPER(vend_name) AS vend_name_upcaseFROM VendorsORDER BY vend_name; # 자주 사용되는 문자 조작 함수 -- LEFT() : 문자열 왼쪽에서부터 문자열 일부를 추출-- LENGTH() : 문자열의 길이를 반환-- LOWER() : 문자열을 소문자로 변환 -- LTRIM() : 문자열의 왼쪽에 있는 공백 문자를 삭제 -- RIGHT() : 문자열 오른쪽에서부터 문자열 일부를 추출-- RTRIM() : 문자열의 오른쪽에 있는 공백 문자를 삭제 -- SOUNDEX() : ..
-
자주 사용하는 SQL Query 1Database/데이터베이스 2018. 11. 9. 01:11
[DataBase] 자주 사용하는 SQL Query 1 [샘플 테이블 다운로드]다음 SQL 실습에 사용된 모든 데이터는 http://forta.com/books/0672336073 에서 다운로드 받을 수 있다 [데이터 가져오기] # 단일 컬럼 가져오기SELECT prod_nameFROM Products; # 다중 컬럼 가져오기SELECT prod_id, prod_name, prod_priceFROM Products; # 모든 컬럼 가져오기SELECT * FROM Products; # 중복행 출력 방지하기SELECT DISTINCT vend_idFROM Products; # 결과 제한하기SELECT prod_nameFROM ProductsLIMIT 5; # 5번째 행부터 5개의 행을 가져오기SELECT p..
-
SQLDatabase/데이터베이스 2018. 10. 24. 19:53
[SQL] ※ 데이터베이스- 정리된 데이터(하나 또는 여러 개의 파일)를 저장하기 위한 공간 ※ 테이블- 구조화된 특정한 타입의 데이터 목록 ※ 스키마- 데이터베이스와 테이블 구조, 속성에 대한 정보 ※ 컬럼- 테이블에 있는 하나의 필드. 모든 테이블은 한 개 이상의 컬럼으로 구성되어 있다. ※ 데이터타입- 허용되는 데이터의 유형. 모든 테이블 컬럼은 데이터타입을 가지고 있고, 컬럼에는 정해진 데이터 타입만 허용된다. (정해지지 않은 데이터 타입은 제한된다) ※ 행- 테이블에 있는 레코드 ※ 주 키- 테이블에 있는 각 행을 구별하는 컬럼(또는 컬럼 집합) ※ 키워드- SQL 언어의 일부분인 예약어로, 키워드는 테이블명 또는 컬럼명으로 사용할 수 없다.
-
ORM과 JPA 그리고 HibernateDatabase 2018. 8. 28. 15:45
[Spring JPA] ORM과 JPA 그리고 Hibernate ※ JPA (Java Persistent API) - JPA란 자바 ORM 기술에 대한 API 표준 명세 - JPA는 ORM을 사용하기 위한 인터페이스를 모아둔 것이며, JPA를 사용하기 위해서는 JPA를 구현한 Hibernate, EclipseLink, DataNucleus 같은 ORM 프레임워크를 사용해야함 - 여러 ORM 전문가가 참여한 EJB 3.0 스펙 작업에서 기존 EJB ORM 이던 Entity Bean을 JPA라고 변경 [JPA : Java Persistent API] ※ ORM (Object Relational Mapping) - ORM 이란 객체와 DB의 테이블이 매핑을 이루는 것 - 즉 객체가 테이블이 되도록 매핑시켜주는..