이번 글에서는 MySQL에서 공간 데이터를 다루는 법을 알아보고 실습을 통해 성능을 비교해 본 것을 기록합니다. 특히 가장 많이 사용되는 특정 좌표로부터 특정 거리 내의 좌표를 찾는 연산을 위주로 실습하고 인덱스와 공간 연산의 성능을 테스트합니다. 들어가기 앞서 제가 이 글에서 사용한 MySQL 버전은 v8.3.0입니다. MySQL의 공간 데이터 MySQL의 `MyISAM`, `InnoDB`, `NDB`, `ARCHIVE` 스토리지 엔진은 공간 데이터 타입과 관련 함수를 지원합니다. 이 중 `MyISAM`과 `InnoDB`는 공간 데이터 타입 컬럼에 대해 공간 인덱스와 비공간 인덱스를 지원하고 `NDB`와 `ARCHIVE`는 비공간 인덱스만 지원합니다. `InnoDB`는 데카르트 SRS와 geograph..
Computer Science/Database
MySQL 실습을 위해 MySQL에서 제공하는 Example database중 employee 데이터를 다운받고 데이터베이스를 생성해봅시다. Example Database MySQL에서는 실습에 유용한 다양한 관계를 갖는 데이터베스와 데이터를 제공합니다. 공식문서에서 데이터베이스 생성 방법을 확인 할 수 있습니다. employee 데이터를 다운 받고 생성해봅시다. employee 데이터베이스 구조는 아래와 같습니다. 데이터 다운로드 employee의 경우 깃헙에서 다운받을 수 있습니다. 쉽게 zip 파일로 다운받을 수있습니다. 압축을 푼 폴더에서 터미널을 엽니다. 데이터베이스 생성, 데이터 삽입 이제 employees.sql 스크립트를 실행합니다. `employees`라는 이름의 데이터베이스가 이미 존재..
MySQL에서 localhost와 socket file! 데이터베이스 에러 프로그램을 만들 때 데이터베이스가 가장 말썽인 것 같다. 설계, 에러 등에서 시간을 많이 쓰게 된다. cloer chat프로젝트 중 잘 작동하다가 에러가 발생했다. Error: connect ECONNREFUSED ::1:3306 데이터베이스에 연결이 안되는 에러인데 간단한 실수부터 방법으로 발생하는 에러다. 단순 실수로 발생한 에러가 아니고 몰랐던 부분이어서 정리하려 한다. 내 경우 MySQL 공식문서에서 답을 찾았다. https://dev.mysql.com/doc/refman/8.0/en/can-not-connect-to-server.html MySQL에서 localhost localhost는 루프백 호스팅으로 본인의 컴퓨터..