동일한 데이터베이스에서 스토리지 엔진을 혼합해도 괜찮습니까?
데이터베이스에 약 50,000개의 제품이 있는 OpenCart 프로젝트가 있습니다.저는 웹 호스팅을 VPS에서 전용 서버로 전환했고 몇 가지 개선 사항을 봤지만 웹 사이트는 여전히 느립니다.
VPS에는 모든 테이블이 있었습니다.MyISAM와 함께latin1_swedish_cimysql에 대한 데이터 수집5.1.x.x전환한 새 서버에서TokuDB그리고.MariaDB 10일부 테이블의 경우 FULLTEXT 인덱스를 삭제해야 했고 성능이 다소 저하되었습니다(모든 테이블이 현재 TokuDB에 있음).
일부 테이블을 MyISAM(전체 텍스트 색인만 사용)으로 다시 전환하는 것이 현명한 결정입니까?OpenCart에 많은 테이블에 참여하는 쿼리가 있습니다. 일부는 TokuDB에 있고 일부는 MyISAM에 있으면 패널티가 있습니까?성능만 보고 있는데, 자료는 2위에 있습니다.
정말 고마워.
맞는 것 같아요, 데이터베이스에 혼합 스토리지 엔진이 있고, 데이터베이스 속도도 맞아요.
어쨌든 만약 당신이 많은 제품(50,000개)이 있는 오픈 카트를 사용한다면, 저는 당신이 (모든) 테이블에 인덱스를 만들 것을 추천합니다. 그렇게 한다면 당신은 속도를 향상시킬 수 있습니다.
다음을 수행했습니다.
#Tabla category campo parent_id
CREATE INDEX i_parent_id ON category (parent_id);
#Tabla category_description campo language_id
CREATE INDEX i_category_description ON category_description (language_id);
#Tabla category_path campos path_id y level
CREATE INDEX i_category_path ON category_path (path_id,level);
#Tabla category_to_store campo store_id
CREATE INDEX i_category_to_store ON category_to_store (store_id);
#Tabla manufacturer_to_store campo store_id
CREATE INDEX i_manufacturer_to_store ON manufacturer_to_store (store_id);
#Tabla product campos manufacturer_id, date_added, date_modified
CREATE INDEX i_product ON product (manufacturer_id, date_added, date_modified);
#Tabla product campos model, sku, upc, ean,(como veis donde tengais la referencia etc) y con tipo FULLTEXT (si el campo es de caracteres no de números)
CREATE FULLTEXT INDEX i_product_fulltext ON product (model, sku, upc, ean);
#Tabla product_description campo language_id
CREATE INDEX i_product_description ON product_description (language_id);
#Tabla product_to_category campo category_id
CREATE INDEX i_product_to_category ON product_to_category (category_id);
#Tabla product_to_store campo store_id
CREATE INDEX i_product_to_store ON product_to_store (store_id);
#Tabla setting campo store_id, serialized
CREATE INDEX i_setting ON setting (store_id, serialized);
#Tabla url_alias campo query con tipo FULLTEXT
CREATE FULLTEXT INDEX i_url_alias ON url_alias (query);# 6936 filas afectadas.
#Tabla zone campo country_id
CREATE INDEX i_zone ON zone (country_id);
#Tabla zone campo name y code con tipo FULLTEXT
CREATE FULLTEXT INDEX i_zone_fulltext ON zone (name,code);
당신은 당신의 테이블에 '접두사'를 붙여야 할 것입니다.
이와 같은 것: http://www.codigojavaoracle.com/desarrollo-web/mejorar-la-velocidad-en-opencart/ .
당신이 무엇을 하고 있고 왜 그것을 하고 있는지 안다면 괜찮습니다.
엔진마다 메모리와 디스크 스토리지를 매우 다르게 사용합니다.OLTP 유형 시스템의 경우 InnoDB가 MyISAM보다 일반적으로 더 합리적입니다(다른 엔진을 사용하기 전에 경합을 확인했습니까?).그러나 InnoDB 성능 향상을 위해 버퍼 풀에 추가하는 메모리는 더 이상 VFS 또는 정렬 버퍼에서 사용할 수 없습니다(MyISAM 성능 향상).
저는 TokuDB가 eCommerce 사이트의 스토리지 기판으로서 어떻게 의미가 있는지 상상하느라 정말 애를 먹고 있습니다.삽입 및 업데이트를 위해 쓰기 속도를 높이고 SSD의 유지보수를 줄이는 것이 핵심입니다. 일부 엔진의 성능이 다른 엔진보다 우수한 경우는 거의 없습니다.
언급URL : https://stackoverflow.com/questions/29051526/is-it-ok-to-mix-storage-engines-on-same-database
'programing' 카테고리의 다른 글
| MYSQL, 선택한 필드를 한 테이블에서 다른 테이블로 복사 (0) | 2023.08.07 |
|---|---|
| PHP - 배열을 클래스 상수로 사용합니다. (0) | 2023.08.07 |
| Unity의 통화당 싱글톤 컨텍스트(웹 요청) (0) | 2023.08.02 |
| Gradle | 스프링 부트 종속성은 제외되지 않습니다. (0) | 2023.08.02 |
| 스크립트에서 stdout을 캡처하시겠습니까? (0) | 2023.08.02 |