"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > MySQL 데이터베이스에 배열을 효율적으로 저장하려면 어떻게 해야 합니까?

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

2024-11-08에 게시됨
검색:826

How Can I Store Arrays Efficiently in a MySQL Database?

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

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

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

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

대체 관계형 접근 방식

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

$a = [
    1 => [
        'a' => 1,
        'b' => 2,
        'c' => 3
    ],
    2 => [
        'a' => 1,
        'b' => 2,
        'c' => 3
    ],
];

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

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
);

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

SELECT * FROM test;
INSERT INTO test (id, a, b, c) VALUES (1, 1, 2, 3);

추가 대안

단일 필드인 경우 JSON 함수 사용을 고려할 수도 있습니다.

  • json_encode()를 사용하여 배열을 JSON 문자열로 변환합니다.
  • json_decode()를 사용하여 JSON 문자열을 다시 배열로 변환합니다. .
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3