> 데이터 베이스 > MySQL 튜토리얼 > MySQL 개발 사양 기록

MySQL 개발 사양 기록

coldplay.xixi
풀어 주다: 2020-12-21 09:56:06
앞으로
1603명이 탐색했습니다.

Mysql 비디오 튜토리얼 칼럼은 MySQL 개발 사양을 소개합니다

MySQL 개발 사양 기록

권장(무료): mysql 비디오 튜토리얼

기본 사양

  • innodb 스토리지 엔진 사용

  • 테이블 문자 집합은 utf-8을 사용합니다.

  • 모든 테이블에 주석 추가

  • 단일 테이블의 데이터 볼륨은 5000W 이내로 제어하는 ​​것이 좋습니다

  • 더 이상 다음과 같은 빅 데이터를 저장하지 마세요. 데이터베이스의 그래프 및 파일

  • 데이터베이스 스트레스 테스트를 온라인으로 수행하는 것은 금지되어 있습니다

  • 테스트 및 개발 환경을 데이터베이스에 직접 연결하는 것은 금지되어 있습니다

네이밍 규칙

  • 라이브러리 이름 테이블 이름 필드 이름은 12자 이내로 고정된 이름 지정 길이를 가져야 합니다.

  • 라이브러리 이름, 테이블 이름, 필드 이름은 32자를 초과할 수 없습니다. 이름의 의미를 꼭 보아야 합니다

  • 라이브러리 이름, 테이블 이름, 필드 이름에는 MySQL 예약어를 사용할 수 없습니다

  • 임시 라이브러리 및 테이블 이름에는 접두사 tmp, 접미사 날짜를 붙여야 합니다

  • Backup 라이브러리 및 테이블 접두사는 bak이고 접미사는 날짜여야 합니다

라이브러리, 테이블, 현장 개발 및 설계 사양

  • 파티션 테이블 사용은 금지됩니다

  • 큰 필드와 필드를 다음으로 분할 낮은 회전율, 핫 데이터와 콜드 데이터 분리

  • HASH를 사용하여 이산 테이블을 입력하세요. 테이블 이름의 접미사는 기본 번호이고 아래 첨자는 0

  • 테이블은 YYYY[MM][DD][HH]형식을 준수해야 합니다. 날짜 및 시간별

  • 적절한 하위 데이터베이스 테이블 분할 전략을 사용하세요. 예를 들어 Qianku Ten Tables, Ten Databases Hundred Tables 등이 있습니다.

  • 텍스트 및 blob 유형을 최대한 사용하지 마세요.

  • 정확한 부동 소수점 숫자를 저장하려면 float 및 double 대신 십진수를 사용하세요

  • 간단할수록 좋습니다. 문자를 숫자로 변환하고 열거형 대신에tinyint를 사용하세요

  • 모든 필드가 null이 아닙니다

  • 음수가 아닌 숫자를 저장하려면 unsigned를 사용하세요

  • int 유형은 4바이트를 고정적으로 차지합니다. Storage

  • 타임스탬프를 사용하여 시간 저장

  • ipv4를 저장하려면 부호 없는 int를 사용하세요

  • 대소문자를 구분하는 가변 길이 문자열을 저장하려면 varbinary를 사용하세요

  • 일반 텍스트 비밀번호를 데이터베이스에 저장하는 것은 금지되어 있습니다. 비밀번호는 암호화되어 저장됩니다

  • 숫자 유형 필드를 잘 사용하세요


    Type

    bytes

    Minimum

    Maximum

    ㅋㅋㅋ mediumint 3int4bigint 8




    -32768

    32767

    -8388608

    8388607

    -2147483648

    2147483647

    -9223372036854775808

    9223372036854775807

    숫자 필드가 그다지 크지 않으면 bigint를 사용하지 마세요

  • char(15) 대신 int에 IP를 저장하는 것이 가장 좋습니다

  • enum은 허용되지 않습니다

  • null 사용을 피하세요. fields

    Null 필드는 쿼리하기 어렵고, Null 필드의 인덱스에는 추가 공간이 필요하며, Null 필드의 복합 인덱스는 유효하지 않습니다.

  • 인덱스 사양

    • 단일 테이블의 인덱스 수는 5개를 초과할 수 없습니다.

    • 단일 인덱스의 필드 수는 5개를 초과할 수 없습니다.

    • 접두사 인덱스 사용 문자열의 경우 접두사 인덱스의 길이는 8자를 초과할 수 없습니다

    • 접두사 인덱스에 우선 순위를 부여하는 것이 좋습니다. 필요한 경우 의사 열을 추가하고 인덱스를 생성할 수 있습니다

    • 테이블에는 기본 키

    • 자주 업데이트되는 열을 기본 키로 사용하지 마세요

    • 문자열 열을 기본 키로 선택하지 마세요

    • uuid md5 해시를 기본 키로 사용하지 마세요. 너무 개별적입니다

    • 기본값은 비어 있지 않은 고유 키를 기본 키로 사용하는 것입니다

    • 자동 증가 또는 발급자를 선택하는 것이 좋습니다

    • 중요한 SQL은 업데이트 및 삭제 문의 조건 열이 있는 위치, 순서 등을 인덱스해야 합니다. by, group by, 개별 필드

    • 다중 테이블 조인을 위한 필드에 대한 참고 사항

    <p>1.区分度最大的字段放在前面<br>2.核SQL优先考虑覆盖索引<br>3.避免冗余和重复索引<br>4.索引要综合评估数据密度和分布以及考虑查询和更新比例<br></p>
    로그인 후 복사
    • index taboos

    <p>1.不在低基数列上建立索引、例如性别<br>2.不在索引列记性数学运算和函数运算<br></p>
    로그인 후 복사
    • 외래 키를 사용하지 마세요

    <p>1.外键用来保护参照完整性,可以业务端实现<br>2.对父表和字表的操作会互相影响,降低可用性<br></p>
    로그인 후 복사
    • 색인 이름 지정

    <p>1.非唯一索引必须以 inx_字段1_字段22.唯一索引必须以 uniq_字段1_字段2<br></p>
    로그인 후 복사
    • 색인 필드의 기본값은 비워둘 수 없습니다. Null은 인덱스의 쿼리 효율성에 큰 영향을 미칩니다.

    • 테이블과 관련된 SQL을 반복적으로 확인하고 가장 왼쪽 접두사의 특성을 기반으로 인덱스를 구축합니다. 여러 필드가 반복되는 인덱스의 경우 명령문 조건 필드의 순서를 수정하고 이에 대한 결합 인덱스를 생성하여 인덱스 수를 줄여야 합니다.

    • 고유 인덱스를 사용할 수 있다면 고유 인덱스를 사용하세요

    • R&D는 설명을 자주 사용해야 합니다. 인덱스 선택성이 좋지 않다면 힌트를 사용하는 방법을 배워야 합니다.

    SQL 사양

    • SQL 문은 최대한 단순해야 합니다.

    • 간단해야 하며, 전체 작업에 소요되는 시간이 너무 길면 안 됩니다.

    • 트리거 사용을 피하세요. , 함수 및 저장 프로시저

    • 비즈니스 결합을 줄이고 저장 및 샤딩을 위한 공간을 남겨두세요

    • 데이터베이스에서 수학적 연산을 피하세요. MySQL은 수학적 연산과 논리적 판단에 능숙하지 않습니다

    • 사용하지 마세요 selecy * 해당 필드를 쿼리하려면 해당 필드를 선택하세요.

    • Rewrite 또는 in sql as in. or의 효율성은

    • in의 숫자 수는 1000 이내를 권장합니다

    • 페이징을 제한하고 효율성에 주의하세요. 한계가 클수록 효율성은 낮아집니다.

    • Union 대신 Union All을 사용하세요

    • 큰 테이블 조인을 피하세요

    • 그룹화 및 자동 정렬을 위해 그룹 BU를 사용하세요

    • 데이터 업데이트는 분할하여 일괄 업데이트해야 합니다. 한 번에 많은 데이터를

    • 데이터베이스와의 상호 작용 횟수를 줄입니다

    • 성능 분석 도구 사용에 주의하세요

    • SQL 문에는 모든 R&D가 필요하고, SQL 키워드는 모두 대문자이며 공백은 하나만 사용합니다. 각 단어마다 허용

    • SQL 문은 허용되지 않습니다. 암시적 변환이 발생합니다

    • 필요하지 않으면 사용하지 마세요

    • 접두사 is ​​% 사용이 금지됩니다 like

    • not in, not like

    • 데이터베이스에서 실행이 금지되어 있는 부정 쿼리를 사용하지 마세요. 빅 쿼리

    • 사전 컴파일된 문에서 매개 변수만 전달하는 것이 가능하므로 전달하는 것보다 더 효율적입니다. SQL문. SQL 주입을 줄입니다.

    • order by rand 사용 금지

    • 단일 SQL문으로 여러 테이블을 동시에 업데이트하는 것은 금지

    프로세스 사양

    • 모든 테이블 생성 작업 테이블에 포함된 쿼리 SQL을 미리 알려야 합니다.

    • 모든 테이블 생성에는 테이블을 구축하고 온라인에 올리기 전에 어떤 인덱스를 생성할지 결정해야 합니다.

    • 모든 테이블 구조 변경 및 인덱스 추가 작업에는 테이블의 쿼리 SQL을 발행하여 DBA 및 관련 담당자에게 통보합니다

    • 새 테이블에 필드를 추가하기 전에 R&D에서는 평가, 최적화를 위해 최소 3일 전에 DBA 부서에 이메일을 보내야 합니다. 및 검토

    • 데이터 일괄 가져오기 및 내보내기는 관찰을 돕기 위해 사전에 DBA에게 알려야 합니다

    • 온라인 액세스는 금지됩니다. 라이브러리는 백엔드 관리 및 통계 쿼리를 수행합니다

    • 응용 계정의 존재를 금지합니다. 슈퍼 권한이 있습니다

    • 성수기에는 더 이상 일괄 업데이트 및 데이터베이스 쿼리가 없습니다

위 내용은 MySQL 개발 사양 기록의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:learnku.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿