🚀 들어가며... 실무에서 너무나도 많이 쓰이는 인덱스에 대해 알아보고, 효과적인 인덱스 설계 방법에는 어떠한 것들이 있는지 정리해보았습니다! 📑 내용 인덱스의 개념 인덱스는 테이블의 동작속도(조회)를 높여주는 자료구조입니다. 인덱스로 데이터의 위치를 빠르게 찾아주는 역할이고 대표적인 예로는 책 뒷편에 '색인'이 인덱스의 역할과 동일하다고 볼 수 있습니다. 인덱스가 설정되지 않았다면 Table Full Scan이 일어나 성능이 저하되거나 치명적인 장애가 발생합니다. 하지만, 인덱스의 단점도 존재하는데, 조회속도는 빨라지지만 UPDATE, INSERT, DELETE의 속도는 저하된다는 단점이 있습니다. (Table의 index 색인 정보를 갱신하는 추가적인 비용 소요) 때문에 효율적인 인덱스 설계로 단점을..
🚀 들어가며... 제가 실무에서 쿼리의 속도개선을 진행하면서 고민하고 시도해보았던 내용들을 정리해보는 시간을 가져보겠습니다. 다만, 예시들은 보안때문에 올릴수 없는점 양해부탁드립니다. 📑 내용 1. querystrings.py 적절한 TempTable 사용 (JOIN절에 과다한 서브쿼리 사용) JOIN절에 과다한 서브쿼리를 사용하는 것 보다는 때로는 적절한 TempTable 사용 (실제 2,300여건 결과 TimeOut → 3초) UPDATE - FROM 절 사용시에도 FROM 절의 서브쿼리를 temp table 로 변경했을 때 속도개선 효과가 클 수 있음 2. [querystrings.py] 여러 항목('...,...,...') 형태 등의 데이터를 다룰 때 '...,...,...' 형태의 데이터 양이 ..
🚀 들어가며... 제목은 날짜데이터를 기반으로 한 요일 찾는 방법이지만, 사실 to_char에 대해 알아보는 시간입니다. 실무에서 날짜 뒤에 요일을 붙여주기를 원해서 좋은방법을 찾아보다가 발견한 부분을 알려드릴 예정입니다! 📑 내용 PostgreSQL에서 to_char 함수는 다양한 데이터 유형(날짜/시간, 정수, 부동 소수점, 숫자)을 형식화된 문자열로 변환하고 형식화된 문자열에서 특정 데이터 형식으로 변환하기 위한 강력한 도구 세트를 제공합니다. 높은 빈도 포멧 설명 YYYY year (4 and more digits) MM month number (01-12) DD day of month (01-31) HH24 hour of day (00-23) MI minute (00-59) SS second (..
🚀 들어가며... 금일 포스팅에서는 SQL에서 흔히 쓰는 DROP, TRUNCATE, DELETE의 차이점들을 알아보겠습니다! 📑 내용 차이점을 서술하기에 앞서 각각의 명령어의 특징을 알아보겠습니다. 1) DELETE - WHERE절을 사용하여 테이블에 있는 데이터를 하나하나 선택하여 제거하는 방식 - WHERE절을 사용하지않고 테이블의 모든 데이터를 삭제하더라도, 내부적으로는 한줄 한줄 일일히 제거하는 과정을 거칩니다. - 처리속도가 늦고, 퍼포먼스에 좋지않은 영향을 줄 수 있습니다. - 원하는 데이터만 골라서 삭제할 때에는 DELETE 사용 / 전체 데이터 삭제할 때에는 TRUNCATE 사용합니다. - 데이터를 삭제하더라도 데이터가 담겨있던 Storage는 Release 되지 않습니다. - DELET..
🚀 들어가며... 이번 포스팅에서는 postgresql에서 cursor.execute로 쿼리를 실행한 결과를 json 형식으로 만들어 반환해주는 방법에 대해 소개해보도록 하겠습니다. 📑 내용 저같은 경우에는 리스트안에 딕셔너리 형태로 표현을 하였고, cursor.description을 이용하여 쿼리결과의 컬럼값들을 뽑은 후 만들고자 하는 딕셔너리형식의 키값으로 넣어주고, cursor.fetchall()을 이용하여 나온 결과값을 딕셔너리의 벨류값으로 넣어줘서 최종적으로는 원하는 결과를 Json형식으로 만들어줍니다. def name_to_json(cursor): """ cursor.fetchall() 함수로 받아온 쿼리 결과를 json 형식으로 만들어 반환해주는 함수입니다. :param cursor: SQL..
🚀 들어가며... Python에서 PostgreSQL을 사용하기 위해서는 psycopg2 라이브러리를 사용합니다. 오늘은 psycopg2 라이브러리의 간단한 사용법과 트랜잭션 ID 추출방법에 대해 알아보겠습니다. 📑 내용 Psycopg2란? Python에서 PostgreSQL을 사용하기 위해서는 psycopg2 라이브러리를 사용합니다. 해당 라이브러리의 공식 사이트와 GitHub은 다음과 같습니다. https://www.psycopg.org/docs/ https://github.com/psycopg/psycopg2/ JDBC와 같은 Database 커넥터이기 때문에 다음과 같은 기능을 제공합니다. Database 연결과 해제 SQL 실행과 트랜잭션 발생 결과 반환 Psycopg2은 Pyhton에서 사용되..
- Total
- Today
- Yesterday
- JavaScript
- uSWGI
- MVT
- Algorithm
- db
- django
- SQL
- Linux
- container
- static files
- react
- PostgreSQL
- lv1
- django ORM
- Master & Slave
- generator expression
- Default export
- list
- Named export
- programmers
- Python
- lv2
- data formatting
- JS
- union-find
- Greedy Algorithm
- 탐욕법
- docker
- ORM
- This
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |