본문 바로가기

mysql4

MySQL에서 `Process`의 의미 : 단일 프로세스의 프로세스를 종료할 수 있다고요? 궁금했던 것 RealMySQL에서 다음과 같은 구절이 나옵니다. (Lock 챕터 중...) 강제 잠금을 해제하려면 KILL 명령을 통해 MySQL 서버의 프로세스를 강제로 종료하면 됩니다. 그런데, Process를 죽인다는 것이 가능한 것일까요? 제가 아는 바로는 MySQL은 단일 프로세스이기 때문에 Process를 죽이면 MySQL이 종료되지 않을까 생각했습니다. 그런데 이것은 `Process`라는 용어가 OS와 MySQL DBMS 내부에서 다르게 쓰인다는 것을 모를 때 생각한 의문이었습니다. 이에 대해서 알아본 바를 간단하게 서술해보려고 합니다. 혹시 잘못된 것이 있다면 꼭 알려주세요 👍 MySQL은 스레드 기반으로 작동합니다. MySQL 서버는 프로세스 기반이 아니라 스레드 기반으로 작동하며, 크게.. 2023. 12. 21.
MySQL 검색 기능 개선하기 : Full-text search 이 글은 당근마켓을 모티브로 한 프로젝트 Secondhand 구현시 이슈 사항을 정리한 글입니다. mysql 8.0 InnoDB 환경에서 테스트 되었습니다. 발단 : 왜 검색 기능 개선이 필요했나? Secondhand는 동네를 검색할 수 있는 기능이 있습니다. 예를 들어 이런거요. [이미지 출처 : https://kikimong.com/7179] 먼저 데이터는 이런식으로 들어가 있습니다. 법정동 코드를 pk 로 하였습니다. 행정동 코드보다 법정동 코드를 선택한 이유는 변동이 더 적기 때문입니다. [참고링크 : 법정동과 행정동의 차이는?] 그리고 검색을 용이하게 하기 위해 일부러 비정규화하였습니다. 그래서 지역 검색을 어떻게 구현하면 좋을까요? 전개 초기 구현 방법 Where ~ like 사실 이 프로젝트.. 2023. 9. 13.
MySQL 에서 외래키가 있으면 어떤 것들을 검증할까? 외래키 제약 조건은 관련 데이터의 일관성을 유지하는 데 사용합니다. 💡 다른 종류의 제약 조건과 마찬가지로 데이터가 일치하지 않을 경우 데이터가 삽입되거나 업데이트되는 것을 방지할 수 있습니다. …… 또는 DML 작업이 수행될 때 제약 조건으로 인해 하위 행 의 데이터가 삭제되거나, 다른 값으로 변경되거나, 외래 키를 생성할 때 지정된 옵션 에 따라 null 로 설정될 수 있습니다. 참고링크 외래키 먼저 공식 문서를 읽어보면… 외래 키는 관련 정보의 빠른 조회를 가능하게 하는 것 외에도 데이터가 삽입, 업데이트 및 삭제될 때 이러한 포인터가 무효화되는 것을 방지하여 참조 무결성을 강화하는 데 도움이 됩니다. 이 강제 메커니즘은 제약 조건 의 한 유형입니다. 연결된 외래 키 값이 다른 테이블에 없으면 다른.. 2023. 9. 12.
Docker에서 MySQL 설치 및 접속 Spring 복습을 위한 미니 프로젝트르 세팅하며, Docker에서 MySQL 세팅을 다시 해보았다. 이 과정은 왠지 많이 쓰일 것 같으므로, 앞으로를 위해 또 저장 👀 해당 설정은 Mac OS Ventura 13.2.1(22D68) 에서 실행되었습니다. 왜 도커 Docker 로 MySQL을 실행하는 것이 좋을까? 사실 이전까지 MySQL을 로컬에서 설치하고 실행시켜왔습니다. 그러나 이러한 방법은 여러 문제점이 있습니다. 가장 단적인 예시는 MySQL을 버전 별로 관리하거나 여러 개의 인스턴스를 만들어 사용하고자 할 때 매우 불편하고, MySQL 버전이나 로컬 환경이 변하면 MySQL 세팅을 다시 해야하는 것이죠. 무엇보다 MySQL은 삭제가 참 번거로워서 로컬에서 지우고 다시 설치하고 싶다하여도 깔끔하.. 2023. 3. 1.