MySQL에서 다른 열을 기반으로 효율적으로 열을 계산하는 방법
MySQL 5.7.6 이상에는 생성된 열(Generated Columns)이 도입되었습니다. 이는 동일한 테이블의 기존 열을 기반으로 새 열의 값을 자동으로 계산하는 효율적인 방법입니다. 뷰와 달리 생성된 열은 테이블 정의의 일부이며 소스 열이 변경되면 자동으로 업데이트됩니다.
가상 생성 열 및 저장된 생성 열
생성된 열은 가상이거나 저장될 수 있습니다.
이 경우 새 레코드를 삽입하거나 기존 레코드를 업데이트할 때 계산된 값을 즉시 사용할 수 있어야 하므로 생성된 열을 저장하는 것이 더 적합합니다.
스토리지를 활용한 생성 컬럼 구현
테이블에 price
과 quantity
라는 두 개의 열이 있고 값이 amount
과 price
의 곱인 새 열 quantity
을 추가하려고 한다고 가정합니다. 다음 SQL 문을 사용하여 스토리지 생성 열을 생성할 수 있습니다.
<code class="language-sql">CREATE TABLE order_details ( price DOUBLE, quantity INT, amount DOUBLE AS (price * quantity) STORED );</code>
열이 생성되면 amount
이 테이블의 각 행에 대해 자동으로 계산되어 저장됩니다. price
또는 quantity
을 변경하면 amount
업데이트가 실행됩니다.
테이블 데이터가 포함된 예
샘플 데이터를 삽입한 후:
<code class="language-sql">INSERT INTO order_details (price, quantity) VALUES(100,1),(300,4),(60,8);</code>
테이블은 다음과 같습니다.
id | price | quantity | amount |
---|---|---|---|
1 | 100 | 1 | 100 |
2 | 300 | 4 | 1200 |
3 | 60 | 8 | 480 |
amount
필요에 따라 열이 자동으로 채워지고 업데이트되므로 계산된 값에 효율적으로 액세스할 수 있습니다.
위 내용은 MySQL의 다른 열을 기반으로 열을 효율적으로 계산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!