간단한 성능 및 튜닝 이상의 성장을 시작한 웹 사이트를 운영하고 있습니다. MySQL을 백엔드로 사용하는 PHP 앱입니다. MySQL이 제대로 튜닝되고 코드가 최적화됩니다.관계형 데이터베이스에서 비 관계형 데이터베이스로의 비정규 화 데이터 모범 사례
것은 내가 일을 빠르게하기 위해 일종의 비정규 화를 사용할 수 있다는 것을 알고있다.
이베이 또는 아마존과 유사한 사이트가 있다고 가정합니다. 데이터베이스에 제품 관련 정보 (판매자, 제품을 구입 한 고객, 도시, 주 등)가 있습니다. 그것은 Relational DataBase의 여러 테이블이 될 것이므로 좋은 쿼리를 만들기 위해이 방법을 사용하는 것이 좋습니다. 그러나 예를 들어 홈 페이지의 경우 하나의 비정규 화 문서 (예 : MongoDB)를 사용할 수 있습니다. 이와 유사한 최신 제품과 모음, denormalied 될 수 :
products = {
{
id:13,
name:"Some product",
city:"aCity",
state:"aState",
price:"10"
},
{
id:123,
name:"another product",
city:"aCity",
state:"aState",
price:"10"
}
}
이런 식으로, (모두가 참여 조인으로) 그 컬렉션을 대신 MySQL 데이터베이스를 조회 할 수 있으며, 상황이 정말 빨리 얻을 수 있습니다.
이제 여기에 질문이 있습니다. 언제 어떻게 데이터를 비정규 화합니까? 예를 들어 삽입 할 때 데이터를 비정규 화하려고 결정할 수 있습니다.
내 "create-product.php"(간단히 말해서). 나는 mysql을 위해 모든 "insert into"를 할 수있다. 그리고 나서 Mongo 콜렉션에 저장할 수있다.
아니면 그냥 서버에서 프로그램을 실행할 수 있습니다. 또는 최신 제품을 찾을 수있는 cron을 만드십시오.
이들은 모두 가능성이 있습니다. 너 뭐하니? 당신의 만기는 무엇입니까?
고마워요.
간단한 캐시를 찾는 것처럼 보입니다. – hakre
나는 그것을 해봤 다. 그러나 Mongo를 선호합니다. memcache만큼 빠르지는 않지만 지속성이 있습니다. 지금 당장 필요한 것입니다. 감사합니다 – santiagobasulto
어떻게 chache의 백엔드를 mongo로 바꾸고 시도해 보시겠습니까? – hakre