앞에 쓰기: 규칙이 없는 원은 없습니다. 이제 막 인터넷에 접속하신 분들은 반드시 MySQL, MySQL인터넷에서 가장 인기 있는 관계형 데이터베이스 제품으로서 장단점이 있으며, 그 특성을 대부분의 인터넷 애플리케이션의 특성과 결합하여 저자는 다년간의 인터넷 회사에서의 경험을 바탕으로 설명합니다. MySQL DBA 경험을 바탕으로 이제 인터넷MySQL의 일부 개발 사양을 참고용으로 요약합니다. .
1. 기본사양 (1)
사용INNODB스토리지 엔진
(2)
테이블 문자 집합은 UTF8
을 사용합니다(3)
모든 테이블에 코멘트 추가 필요
(4)
단일 테이블의 데이터 양을 조절하는 것이 좋습니다 5000W
(5)
이내 그래프를 데이터베이스에 저장⽚, 파일 및 기타 빅데이터
(6)
온라인으로 데이터베이스 스트레스 테스트를 수행하는 것은 금지되어 있습니다
(7)
금지 ⽌테스트 및 개발 환경에서 데이터베이스에 직접 연결
2. 명명 사양 (1)
라이브러리 이름, 테이블 이름 및 필드 이름은 12 문자 내에서 (2)
라이브러리 이름, 테이블 이름, 필드 이름은 금지됩니다. ⽌ 은 32자를 초과합니다. 이름의 의미를 꼭 보세요(3)
라이브러리명, 테이블명, 필드명 금지 ⽌중지⽤사용 MySQL예약어(4)
임시 라이브러리 및 테이블 이름은 다음과 같아야 합니다. tmp로 시작하고 앞에 ⽇ 날짜를 붙입니다. 접미사입니다
(5) 백업 라이브러리와 테이블 앞에는 bak가 붙어야 하며 날짜는 접미사
3. 라이브러리, 테이블, 현장 개발 및 설계 사양
(1) 금지⽌ 파티션 테이블을 사용하여
(2) 큰 필드와 액세스 빈도가 낮은 필드를 분할하고 핫 데이터와 콜드 데이터를 분리합니다.
(3) HASH를 사용하여 ⾏스캐터 테이블, 테이블 이름 접미사는 ⽤⼗ 기본 번호, 0
( 4) 날짜 및 시간별 표는 YYYY[MM][DD][HH] 형식을 준수해야 합니다.
(5) 적절한 샤딩 전략을 채택하세요. 예를 들어 Qianku Ten Tables, Shiku Hundred Tables 등
(6) 사용하지 마세요TEXT, BLOBTYPE
(7) 을 DECIMAL으로 바꾸세요. 🎜>FLOAT 및 DOUBLE정확한 부동 소수점 숫자 저장
(8) 단순할수록 좋습니다. 문자를 숫자로 변환하고 대신 TINYINT를 사용하세요. >ENUM
유형
(9) 모든 필드는 다음과 같이 정의됩니다.
NULL이 아님(10) UNSIGNED 사용
음수가 아닌 정수 저장
(11) INT고정 직업 유형4
바이트 저장 (12) 사용 타임스탬프
시간 저장
(13) 사용 INT UNSIGNED저장소
IPV4(14) 사용 VARBINARY
저장 대소문자를 구분하는 가변 길이 문자열
(15) 데이터베이스에 일반 텍스트 비밀번호를 저장하는 것은 금지되어 있으며, 비밀번호는 암호화하여 저장해야 합니다.
(16) 숫자형 필드를 잘 활용하세요
Tinyint(1Byte)
smallint(2Byte)
mediumint(3Byte)
int(4Byte)
bigint (8바이트)
|
바이트 최소값 최대값
|
| (서명됨/서명되지 않음) |
(서명됨/서명되지 않음) |
TINYINT |
1 |
-128 |
127 | tr> 서명 없음 |
| 0 |
255 |
SMALLINT |
2 | -32768 |
32767 | tr>서명 없음 |
0 | 65535 |
3-8388608 |
8388607 | 서명 없음 |
td> |
0 |
16777215 |
내부 |
4 |
-2147483648 |
2147483647 td> |
서명 없음 |
0 | 4294967295 td> |
빅인트 |
8 |
-9223372036854775808 |
9223372036854775807 |
서명 없음 |
| 0 |
18446744073709551615 | tr>테이블>
숫자 필드가 그다지 크지 않으면 bigint
를 사용하지 마세요. (17) 저장공간ip사용하기 가장 좋음 int는 char(15)
(18) 은 허용되지 않습니다 ENUM
(19) 사용하지 마세요 NULL 필드
NULL 필드는 쿼리 및 최적화가 어렵습니다. NULL 필드의 인덱스에 추가 공간이 필요합니다. NULL 필드의 복합 인덱스가 유효하지 않습니다.
(20) 절대로 사용 text/blob, varchar의 성능은 text보다 훨씬 높을 것입니다. 정말 어쩔 수 없는블롭테이블을 나눠주세요
(21) 대용량 파일이나 사진은 데이터베이스에 저장할 수 없습니다. 대용량 파일은 데이터베이스에 저장할 수 있으며, 해당 개체의 경로는 데이터베이스에 저장됩니다.
4. 인덱스 사양
1, 인덱스 수를 제어해야 합니다.
( 1) 한 개의 인덱스 수 테이블은 5
(2) 을 초과하지 않아야 합니다. 단일 인덱스의 필드 수는 5
(3)문자열 Index에 ⽤ 접두사를 사용하세요. 접두사 색인의 길이는 8자 (4)
을 권장합니다. 필요한 경우 의사 열을 추가하고 인덱스를 생성할 수 있습니다2, 기본 키 지침
(1) 테이블에 기본 키가 있어야 합니다
(2) 자주 업데이트되는 열을 기본 키로 사용하지 마세요
(3) 문자열 열을 기본 키로 선택하지 마세요. 기본 키
(4)
UUID MD5 HASH를 사용하지 마세요. 기본 키(값이 너무 불연속적임)
(5) 기본값은 ⽤ 비어 있지 않은 고유 키 기본 키로
(6) auto-increment 또는 issuer를 선택하는 것이 좋습니다
3, 중요 SQL은 다음과 같이 색인화되어야 합니다.
(1) UPDATE, DELETE문의 WHERE 조건열
(2) ORDER BY, GROUP BY, DISTINCT 필드
4, 다중 테이블 JOIN 필드는 다음과 같이 주의해야 합니다.
(1) 차이가 가장 큰 필드를 앞에 배치
(2) Core⼼SQL포함 인덱스 우선
( 3) 중복 및 중복 인덱스 방지
(4) 인덱스는 데이터 밀도와 분포를 종합적으로 평가하고 쿼리 및 업데이트 비율을 고려해야 합니다
5, 인덱스 금기
(1) "성별"과 같이 낮은 카디널리티 열에 대해 색인을 생성하지 마십시오.
( 2) 인덱스 열에 수학 연산 및 함수 연산을 수행하지 마세요
6, 시도하지 마세요 외래 키 사용
(1) 외래 키는 참조 무결성을 보호하는 데 사용되며 비즈니스 측면에서 구현될 수 있습니다
(2 ) 상위 테이블과 하위 테이블에 대한 작업이 서로 영향을 미치므로 가용성이 줄어듭니다.
7, 인덱스 이름 지정: 고유하지 않은 인덱스는 idx_field1_필드 2는 이름이 고유하므로 로 이름을 지정해야 합니다. uniq_ 필드1_필드2 이름 지정 시 인덱스 이름은 모두 소문자여야 합니다
8. 새로 생성된 고유 인덱스는 기본 키와 중복되어서는 안 됩니다. 🎜>
9, 인덱스 필드의 기본값은 NULL일 수 없으며 변경해야 합니다. 다른 것으로기본값 또는 비어 있습니다. NULL인덱스 쿼리 효율성에 많은 영향을 미칩니다
10 , 해당 테이블과 관련된 SQL을 반복적으로 확인하고, 가장 왼쪽 접두사의 특성을 기반으로 인덱스를 구축합니다. 여러 개의 반복 필드가 있는 명령문의 경우 명령문 조건 필드의 순서를 수정하고 이에 대한 공동 인덱스를 생성하고 인덱스 수를 줄여야 합니다
11 , 고유 인덱스를 사용할 수 있다면 쿼리 효율성을 높이기 위해 고유 인덱스를 사용해야 합니다
12, R&D에서는 자주 사용해야 합니다 설명, 인덱스 선택성이 좋지 않다고 판단되면 사용법을 익히도록 해야 합니다 힌트
SQL사양
(1) sql 명령문은 최대한 간단하게
큰 sql분할 방법을 찾아보세요. 작은 sql문장(최대한 활용QUERY CACHE멀티 코어를 최대한 활용 CPU)
(2) 거래는 단순해야 하며 전체 거래 기간은 너무 길지 않아야 합니다
(3) 트리거, 함수, 저장 프로시저 사용을 피하세요
(4 ) 업무 결합을 줄이고 sacle out, sharding 을 위한 공간 확보
(5) 데이터베이스에 입력하지 마세요 ⾏수학적 연산(MySQL수학적 연산이나 논리적 판단을 잘 못함)
(4) 선택 *을 사용하지 마세요. 쿼리할 필드는 입니다. 이 필드
(5) sql OR는 에서 IN()(또는은 )
(6) 의 숫자 개수는 1000 이내로 조절하는 것이 좋습니다. 🎜>
(7) 제한페이징 효율성에 주의하세요. 한도크기가 클수록 효율성이 떨어집니다. limit를 다시 작성할 수 있습니다. 예를 들어 예를 다시 작성할 수 있습니다.
select id fromtlimit 10000, 10; => ; id > 10000 제한10;
(9) 사용 Union allunion바꾸기(10)
사용하지 마세요 ⽤큰 테이블JOIN(11)
그룹별을 사용하여 그룹화하고 자동 정렬 (12)
데이터 업데이트는 분할하여 일괄 업데이트해야 합니다.(13) )
데이터베이스와의 상호 작용 횟수 줄이기(13)
사용에 주의 성능 분석 도구Sql explain / showprofile / mysqlsla
(14) SQL
문에는 R&D가 모두 필요합니다. SQL키워드는 모두 대문자이며, 각 단어에 공백 하나만 허용됩니다 (15) SQL
문은 table where id='1'(16) IN
조건에 들어가는 데이터의 개수가 적어야 한다는 것을 기억합니다. 하나 내에서
500이어야 합니다. 대신 exist를 사용하는 방법을 배워야 합니다. in, exist 일부 시나리오에서는 쿼리가 에서(17)필요하지 않은 경우 있습니다
NOT IN필요하지 않은 경우NOTIN 있습니다. 함정이 너무 많습니다. . null 및 NULL(18)
SQL 문에서 금지되는 접두사는 % 좋아요
(19) not in/like
(19) 페이징 쿼리 정보: 프로그램에서는 효율성 향상을 위해 합리적인 페이징 사용을 권장합니다. limit, offset은 더 크므로 하위 쿼리와 함께 사용해야 합니다.
(20) 은 금지됩니다. 데이터베이스에서 대규모 쿼리 실행
(21) ⽤ 사용 사전 컴파일된 문은 매개변수만 전달하는 것이 SQL 문을 전달하는 것보다 더 효율적입니다. 횟수 감소 SQL삽입 확률
(22) 금지⽤rand()로 주문
(23) 여러 SQL문을 동시에 업데이트하는 것은 금지됩니다. 🎜> 6. 프로세스 사양 (1) 모든 테이블 생성 작업은 관련된 쿼리를 알려야 합니다. 테이블을 미리 sql;
(2)
모든 테이블 생성은 테이블을 구축하고 온라인에 올리기 전에 구축할 인덱스를 결정해야 합니다. (3)
모든 작업 테이블 구조 변경 및 인덱스 추가는 변경된 테이블에 대한 쿼리가 필요합니다. sql을 DBA에게 전달합니다.
및 기타 관련 인력
(4)
새 테이블을 생성하고 필드를 추가하기 전에 R&D가 필요합니다. 최소한
3일 전에 dba에 이메일을 보내야 합니다. 평가, 최적화 및 검토를 진행합니다(5) 데이터 일괄 가져오기 및 내보내기는 사전에 통보해야 합니다
DBA관찰 보조(6) 금지⽌
도서관에서 온라인으로 백그라운드 관리 및 통계 조회 실행(7) 차단
⽌
예 super 권한이 존재합니다
(8) 프로모션이나 새로운 기능은 사전 공지 필수 DBA입력 ⾏여행 흐름 평가
(9) 업무량이 많은 기간에는 일괄 업데이트나 데이터베이스 쿼리를 하지 마세요
브라더스 IT 에듀케이션의 오리지널 리눅스 운영 및 유지보수 엔지니어 영상/자세한 리눅스 튜토리얼을 무료로 받아보실 수 있습니다. 공식 홈페이지로 문의해주세요. 자세한 내용은 고객 서비스: http://www .lampbrother.net/linux/
PHP, Linux, HTML5, UI, Android 및 기타 비디오 튜토리얼(코스웨어 노트 비디오)을 배우십시오! 문의 Q2430675018
가입을 환영합니다linux소통그룹 478068715
|

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

PHP를 사용하면 대화식 웹 컨텐츠를 쉽게 만들 수 있습니다. 1) HTML을 포함하여 컨텐츠를 동적으로 생성하고 사용자 입력 또는 데이터베이스 데이터를 기반으로 실시간으로 표시합니다. 2) 프로세스 양식 제출 및 동적 출력을 생성하여 htmlspecialchars를 사용하여 XSS를 방지합니다. 3) MySQL을 사용하여 사용자 등록 시스템을 작성하고 Password_Hash 및 전처리 명세서를 사용하여 보안을 향상시킵니다. 이러한 기술을 마스터하면 웹 개발의 효율성이 향상됩니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP는 여전히 역동적이며 현대 프로그래밍 분야에서 여전히 중요한 위치를 차지하고 있습니다. 1) PHP의 단순성과 강력한 커뮤니티 지원으로 인해 웹 개발에 널리 사용됩니다. 2) 유연성과 안정성은 웹 양식, 데이터베이스 작업 및 파일 처리를 처리하는 데 탁월합니다. 3) PHP는 지속적으로 발전하고 최적화하며 초보자 및 숙련 된 개발자에게 적합합니다.

PHP는 현대 웹 개발, 특히 컨텐츠 관리 및 전자 상거래 플랫폼에서 중요합니다. 1) PHP는 Laravel 및 Symfony와 같은 풍부한 생태계와 강력한 프레임 워크 지원을 가지고 있습니다. 2) Opcache 및 Nginx를 통해 성능 최적화를 달성 할 수 있습니다. 3) PHP8.0은 성능을 향상시키기 위해 JIT 컴파일러를 소개합니다. 4) 클라우드 네이티브 애플리케이션은 Docker 및 Kubernetes를 통해 배포되어 유연성과 확장 성을 향상시킵니다.

PHP는 특히 빠른 개발 및 동적 컨텐츠를 처리하는 데 웹 개발에 적합하지만 데이터 과학 및 엔터프라이즈 수준의 애플리케이션에는 적합하지 않습니다. Python과 비교할 때 PHP는 웹 개발에 더 많은 장점이 있지만 데이터 과학 분야에서는 Python만큼 좋지 않습니다. Java와 비교할 때 PHP는 엔터프라이즈 레벨 애플리케이션에서 더 나빠지지만 웹 개발에서는 더 유연합니다. JavaScript와 비교할 때 PHP는 백엔드 개발에서 더 간결하지만 프론트 엔드 개발에서는 JavaScript만큼 좋지 않습니다.

PHP와 Python은 각각 고유 한 장점이 있으며 다양한 시나리오에 적합합니다. 1.PHP는 웹 개발에 적합하며 내장 웹 서버 및 풍부한 기능 라이브러리를 제공합니다. 2. Python은 간결한 구문과 강력한 표준 라이브러리가있는 데이터 과학 및 기계 학습에 적합합니다. 선택할 때 프로젝트 요구 사항에 따라 결정해야합니다.

PHP는 서버 측에서 널리 사용되는 스크립팅 언어이며 특히 웹 개발에 적합합니다. 1.PHP는 HTML을 포함하고 HTTP 요청 및 응답을 처리 할 수 있으며 다양한 데이터베이스를 지원할 수 있습니다. 2.PHP는 강력한 커뮤니티 지원 및 오픈 소스 리소스를 통해 동적 웹 컨텐츠, 프로세스 양식 데이터, 액세스 데이터베이스 등을 생성하는 데 사용됩니다. 3. PHP는 해석 된 언어이며, 실행 프로세스에는 어휘 분석, 문법 분석, 편집 및 실행이 포함됩니다. 4. PHP는 사용자 등록 시스템과 같은 고급 응용 프로그램을 위해 MySQL과 결합 할 수 있습니다. 5. PHP를 디버깅 할 때 error_reporting () 및 var_dump ()와 같은 함수를 사용할 수 있습니다. 6. 캐싱 메커니즘을 사용하여 PHP 코드를 최적화하고 데이터베이스 쿼리를 최적화하며 내장 기능을 사용하십시오. 7


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음
