>  기사  >  백엔드 개발  >  MySQL 데이터베이스에 배열을 효율적으로 저장하려면 어떻게 해야 합니까?

MySQL 데이터베이스에 배열을 효율적으로 저장하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-30 11:14:02476검색

How Can I Store Arrays Efficiently in a MySQL Database?

MySQL에 배열 저장: 종합 가이드

MySQL과 같은 관계형 데이터베이스로 작업할 때 배열을 효율적으로 저장하는 것이 어려울 수 있습니다. 이 문서에서는 단일 MySQL 필드에 배열을 저장하고 검색하는 방법에 대한 자세한 가이드를 제공합니다.

어레이 스토리지의 장점과 단점

내재적으로 "좋은" 방법은 없습니다. 단일 필드에 배열을 저장합니다. serialize() 및 unserialize()와 같은 함수를 사용하여 데이터 직렬화 및 역직렬화는 해결책처럼 보일 수 있지만 이 접근 방식은 쿼리 가능성과 데이터 무결성을 제한합니다.

대체 관계형 접근 방식

권장되는 접근 방식에는 배열 저장소가 필요하지 않도록 스키마를 재구성하는 것이 포함됩니다. 예를 들어 다음 배열을 고려해 보세요.

<code class="php">$a = [
    1 => [
        'a' => 1,
        'b' => 2,
        'c' => 3
    ],
    2 => [
        'a' => 1,
        'b' => 2,
        'c' => 3
    ],
];</code>

이 데이터를 MySQL에 저장하려면 다음과 같은 테이블을 생성합니다.

<code class="sql">CREATE TABLE test (
  id INT UNSIGNED NOT NULL PRIMARY KEY,
  a INT UNSIGNED NOT NULL,
  b INT UNSIGNED NOT NULL,
  c INT UNSIGNED NOT NULL
);</code>

이 접근 방식을 사용하면 데이터를 효과적으로 쿼리할 수 있습니다. . 다음은 MySQL 쿼리의 예입니다.

<code class="sql">SELECT * FROM test;
INSERT INTO test (id, a, b, c) VALUES (1, 1, 2, 3);</code>

추가 대안

단일 필드에 배열을 저장해야 하는 경우 JSON 함수 사용을 고려할 수도 있습니다.

  • json_encode()는 배열을 JSON 문자열로 변환합니다.
  • json_decode()는 JSON 문자열을 다시 배열로 변환합니다.

위 내용은 MySQL 데이터베이스에 배열을 효율적으로 저장하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.