UPDATE 쿼리로는 여러 레코드를 같은 값으로만 수정할 수 있기에, 여러 개를 각각 다른 값으로 수정해주어야 하는 경우에는 쿼리 한 방으로 처리할 수 없다고 생각했다.그러나 아래와 같은 방식을 사용하면 가능해용INSERT INTO ... ON DUPLICATE KEY UPDATE & VALUESVALUES 함수는 해당 컬럼에 삽입될 값을 의미한다고 한다. 때문에 Id가 PK인 my_table이 있다고 할 때, Id가 1, 2, 3인 컬럼의 순서를 각각 0, 1, 2로 갱신하는 쿼리는 다음과 같이 작성할 수 있다.INSERT INTO my_table (Id, `Order`) VALUES (1, 0), (2, 1), (3, 2) ON DUPLICATE KEY UPDATE my_table.`Order` = ..
[~] brew services list # service 상태 확인Name Status User Filemysql started ingnoh [...][~] brew services stop mysql # 삭제를 위해 service 중지[~] brew uninstall mysql # mysql 삭제# 대충 삭제 과정...# 오래 걸리진 않는다...[~] brew install mysql@8.4# 대충 설치 과정...# 이건 오래 걸린다...[~] brew services start mysql@8.4 # mysql 8.4 서비스 시작[~] mysql --help | grep my.cnf # 포트 번호 설정을 위한 my.cnf 파일 조회 ord..
MySQL :: MySQL 8.0 Reference Manual :: 13.3.2 The CHAR and VARCHAR Types 13.3.2 The CHAR and VARCHAR Types The CHAR and VARCHAR types are similar, but differ in the way they are stored and retrieved. They also differ in maximum length and in whether trailing spaces are retained. The CHAR and VARCHAR types are declared with a l dev.mysql.com Values in VARCHAR columns are variable-length strings. ..
문제 작업 중에 임의의 리소스에 할당된 리액션들을 이모지 형태로 관리할 필요가 있어서 아래와 같은 테이블을 설계했다. CREATE TABLE `Reactions` ( `Id` INT(11) NOT NULL AUTO_INCREMENT, `ResourceId` INT(11) NOT NULL, `Value` VARCHAR(20) NOT NULL, `CreatedAt` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `CreatedById` VARCHAR(255) CHARACTER SET utf8 NOT NULL, PRIMARY KEY (`Id`), UNIQUE `Reactions_uq_1` (`ResourceId` ASC, `Value` ASC, `CreatedById` AS..
리마인드용으로 작성함! PK 인덱스와 세컨더리 인덱스의 구조 B-Tree PK 인덱스와 세컨더리 인덱스 모두 루트 노드 > 브랜치 노드 > 리프 노드의 구조를 갖는 것은 동일하다. 또한, PK 인덱스와 세컨더리 인덱스 모두 루트 노드 또는 브랜치 노드는 자식 노드의 주소를 갖는다. 그러나 세컨더리 인덱스는 리프 노드에서 관리되는 인덱스의 값(value)이 프라이머리 키를 가리키는 반면, PK 인덱스에서는 리프 노드에 실제 레코드가 저장된다. 참고. InnoDB 에서의 데이터 파일 기본적으로 MySQL의 스토리지 엔진 중 InnoDB 에서는 PK 인덱스가 데이터 파일의 역할을 수행하며, PK 인덱스 자체가 데이터 파일이다. 이는 MyISAM 엔진에서는 데이터 파일에 실제 레코드가 저장되는 것과 대비된다.
Using where MySQL은 내부적으로 스토리지 엔진과 MySQL 엔진이라는 두 계층으로 나뉘며, 각각 다음과 같은 역할을 수행한다. 스토리지 엔진: 디스크나 메모리 상에 존재하는 레코드 중 필요한 것을 읽거나 저장한다. MySQL 엔진: 스토리지 엔진으로부터 전달 받은 레코드를 가공하거나 연산한다. 이 때, 실행 계획의 Extra 컬럼에 표시된 Using where는 MySQL 엔진 계층에서 별도의 필터링을 처리한 경우를 의미한다. Using index 커버링 인덱스라고도 하며, 실제 데이터 파일을 전혀 읽지 않고도 인덱스만 읽어들여 쿼리를 모두 처리할 수 있는 경우이다. 예를 들어, SELECT 절에서 선택하는 컬럼과 임의의 인덱스에 명시된 컬럼이 같은 경우 실제 데이터 레코드 파일을 읽는 대신..
- Total
- Today
- Yesterday
- eureka
- Node.js
- Git
- kotlin
- spring boot
- RancherDesktop
- AWS
- IntelliJ
- 코딩테스트
- javascript
- react
- JPA
- shell
- Vault
- Spring Cloud Config
- mysql
- terraform
- Database
- JEST
- jQuery
- Linux
- Docker
- etc
- Puppeteer
- Java
- postgresql
- AWS IoT
- hashicorp
- pgloader
- Gradle
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |