2014-01-21 4 views
0

안녕하세요, 저는 최근에 이미 개발 및 실행중인 제품에 대한 클라이언트 중 하나의 데이터 모델을 최적화하라는 메시지가 표시되는 상황을 보았습니다.이 운동기를 사용하는 주된 이유는 제품의 성능이 느려질 수 밖에 없기 때문입니다 너무 많은 자물쇠와 너무 많은 느린 실행 쿼리. 나는 DBA가 아니므로 데이터 모델의 첫 번째 사이트를보고 쿼리의 일부 추적을 수행하면 전체 데이터 모델이 부적절한 디자인 및 스토리지로 고통 받고 있음을 알게됩니다. 데이터베이스는 MySQl 5.6 그리고 InnoDB 엔진을 실행 중입니다.데이터베이스 모델링 문제 해결

전체 데이터 모델을 분석 할 수있는 도구가 있다는 것을 알고 싶습니다. 데이터 구조 정의, 색인 및 기타 자료를 비롯한 가능한 문제를 지적 할 수 있습니까? Mysql Workbench, Mysql Enterprise Monitor (유료 버전), jet 프로파일 러 등의 프로파일 링 도구를 많이 사용했지만 느린 쿼리 만 식별하는 것으로 제한되어 있습니다. 기존 데이터 모델을 분석하고 문제 및 가능한 솔루션을보고 할 수있는 도구에 관심이 있습니까?

답변

0

데이터 모델을 별도로 볼 수 없습니다. 요구 사항 및 실제 데이터 액세스/업데이트 패턴과 함께 데이터 모델을 고려해야합니다.

내가 가장 느린 상위 쿼리를 확인하고 근본 원인 분석을 수행 할 것을 권장합니다. 이 중요한 응용 프로그램 부분에 초점을 맞춰야합니다., i.g. 성능 문제는 응용 프로그램의 유용성에 부정적인 영향을 미칩니다.

및 데이터 액세스/업데이트 패턴 내가 예를 들어 의미로

:

  • 대부분 읽거나 업데이트 동시 액세스
  • 의 낮은 NR 대
    • 고?
    • 단일 기록은 균등 특정 시간에 하루 동안 또는 대량
    • 랜덤 액세스 (선택하거나 업데이트 할 모든 레코드 가능성이있다) 대 대부분이 최근 확산되면
    • 액세스에서 기록의 큰 NR을 읽는 대 읽는다 레코드
    • 모든 테이블을 동일하게 사용합니까 아니면 일부를 다른 테이블보다 많이 사용합니까?
    • 모든 테이블의 모든 열을 한 번에 읽습니까? 또는 함께 사용되는 열의 클러스터가 있습니까?
    • 함께 자주 사용되는 테이블은 무엇입니까?
    0

    느린 쿼리가 가장 중요합니다. SHOW CREATE TABLE, EXPLAIN 및 테이블의 크기와 함께 몇 가지를 보여줍니다.

    또한 초당 몇 개의 쿼리를 실행하고 있습니까?

    표시 유형 '% 버퍼 %';

    +0

    미안하지만, 정말로 말하기가 어렵다는 것을 보지 않고서는 이해합니다. 그러나 자신감이 있고 당신과 DB 모델을 공유 할 수 없습니다 .NDA! –

    0

    찾고있는 도구가 없으므로 "규칙을 따르는"다른 데이터 모델을 제안하여 숙제를해야 할 것입니다.

    first three normal forms에 익숙해지기 시작할 수 있습니다.

    데이터베이스에서 SQL 반 패턴 (이것에 관한 책이 있습니다)을 감지 할 수도 있습니다. 이것은 당신에게 몇 가지 단서를 제공해야합니다.

    +1

    bootleg 전자 책에 대한 링크를 제거하려면 편집을 롤백하지 마십시오. http://meta.stackexchange.com/questions/226326/should-we-add-it-ebooks-info-to-the-stack-overflow-url-blacklist –

    +0

    그럼 나와 함께 기쁘게 해주세요. 아마존과의 상업적 연결을 더 잘 억제 할 수 있습니다. –