집 >데이터 베이스 >MySQL 튜토리얼 >데이터베이스 속도 최적화를 위한 10가지 팁
데이터베이스 속도 최적화를 위한 10가지 팁
대부분의 웹사이트 콘텐츠는 데이터베이스에 저장되며 사용자는 요청을 통해 콘텐츠에 액세스합니다. 데이터베이스는 매우 빠르며, 서버 리소스를 낭비하지 않도록 데이터베이스 속도를 최적화할 수 있는 기술이 많이 있습니다. 이 기사에는 데이터베이스 속도 최적화를 위한 10가지 팁이 포함되어 있습니다.
1. 데이터베이스를 신중하게 설계하세요
첫 번째 팁은 당연해 보일 수 있지만 실제로 대부분의 데이터베이스 문제는 잘못 설계된 데이터베이스 구조에서 발생합니다.
예를 들어 고객 정보와 결제 정보가 동일한 데이터베이스 열에 저장되는 예를 본 적이 있습니다. 이는 시스템 및 데이터베이스 개발자에게 좋지 않습니다.
새 데이터베이스를 생성할 때 표준 명명 방법과 기본 키를 사용하여 정보를 다른 테이블에 저장해야 합니다.
출처: http://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/
2. 최적화가 필요한 부분 파악
특정 쿼리문을 최적화하고 싶다면 이 쿼리문의 결과를 명확하게 아는 것이 매우 도움이 됩니다. EXPLAIN 문을 사용하면 많은 유용한 정보를 얻을 수 있습니다. 예를 살펴보겠습니다: http://dev.MySQL.com/doc/refman/5.0/en/using-explain.html
3. 가장 빠른 쿼리문은...보내지 않은 쿼리문입니다
그러나 아래와 같이 필요한 열만 나열해야 합니다. 예를 들어 아주 작은 웹사이트에서는 한 명의 사용자가 1분에 방문한다면 별 차이가 없을 수도 있습니다. 그러나 Cats Who Code와 같이 트래픽이 많은 웹사이트인 경우 데이터베이스 작업을 많이 절약할 수 있습니다.
SELECT 제목, 발췌, 작성자 FROM wp_posts;
5. LIMIT 사용
특정 행 수에 대한 데이터만 얻는 것이 매우 일반적입니다. 예를 들어, 블로그는 페이지당 10개의 기사만 표시합니다. 이때 선택하려는 데이터의 행 수를 제한하려면 LIMIT를 사용해야 합니다.
6. 루프 쿼리 방지
PHP에서 SQL을 사용할 때는 SQL Put을 사용하면 됩니다. 루프 문에서. 그러나 그렇게 하면 데이터베이스에 추가적인 부담이 가해집니다.
다음과 같이 할 수 있습니다:
업데이트 카테고리 SET_order = CASE ID 표시 WHEN 1 THEN 3 WHEN 2 THEN 4 WHEN 3 THEN 5 THEN END WHERE id IN (1,2,3)
출처: http://www.karlrixon.co.uk/articles/sql/update-multiple-rows-with- Different-values-and -a-single-sql-query/
7. 조인을 사용하여 하위 쿼리 교체
하위 쿼리는 매우 유용하지만 , 그러나 실행 속도가 더 빠른 조인 문으로 대체될 수 있습니다.
SELECT a.id, MAX(p.created) AS 최신_post FROM 작성자 a INNER JOIN 게시물 p ON (a.id = p.author_id) GROUP BY a.id
출처: http ://20bits.com/articles/10-tips-for-optimizing-mysql-queries-that-dont-suck/
8. 와일드카드는 신중하게 사용하세요
와일드카드는 사용하기 매우 쉽습니다 . 데이터를 검색할 때 와일드카드를 사용하여 하나 이상의 문자를 바꿀 수 있습니다. 사용할 수 없다는 말은 아니지만 주의해서 사용해야 하며 접두사 와일드카드나 후위 와일드카드를 사용하면 동일한 작업을 수행할 수 있습니다.
실제로 수백만 개의 데이터에 대해 전체 단어 와일드카드 검색을 사용하면 데이터베이스가 손상됩니다.
#전체 와일드카드 SELECT * FROM TABLE WHERE COLUMN LIKE '%hello%'; #Postfix 와일드카드 SELECT * FROM TABLE WHERE COLUMN LIKE 'hello%' SELECT * FROM TABLE WHERE COLUMN LIKE '%hello ';
출처: http://hungred.com/useful-information/ways-optimize-sql-queries/
9. OR 대신 UNION을 사용하세요
다음 예에서는 OR 문을 사용합니다.
SELECT * FROM a, b WHERE a.p = b.q 또는 a.x = b.y;
UNION 문, 2개 이상을 결합할 수 있습니다. 여러 select 문의 결과가 합쳐집니다. 다음 예는 위와 동일한 결과를 반환하지만 더 빠릅니다.
SELECT * FROM a, b WHERE a.p = b.q UNION SELECT * FROM a, b WHERE a.x = b.y
출처 : http://www.bcarter.com/optimsql.htm
10. 인덱스 사용
데이터베이스 인덱스는 라이브러리에서 보는 인덱스와 유사합니다. 도서관의 색인을 통해 독자가 원하는 책을 더 빨리 찾을 수 있듯이 원하는 정보를 더 빨리 찾을 수 있습니다.
하나의 열 또는 여러 열에 대한 인덱스를 생성할 수 있습니다. 인덱스는 테이블에 있는 하나 이상의 열 값을 특정 순서로 구성하는 데이터 구조입니다.
다음 문은 Product 테이블의 Model 열에 인덱스를 생성합니다. 이 인덱스의 이름은 idxModel
CREATE INDEX idxModel ON Product(Model)
위 내용은 데이터베이스 속도를 최적화하는 10가지 팁입니다. PHP 중국어 넷(www.php.cn)!