PHP & MySQL
mysql 최적화
MySQL을 위한 하드웨어 최적화 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
디스크 최적화 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
운영체제 최적화 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
API 선택 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
응용프로그램 최적화 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
이식성이 중요한 응용프로그램이라면 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
보다 빠른 속도가 요구된다면 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL 최적화 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL의 컴파일 및 설치 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
유지 보수 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
SQL 최적화 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
사용하는 것이 좋은 것에만 SQL을 사용하고 그렇지 않은 곳에서는 다른 것을 사용한다. SQL는 다음과 같은 곳에 사용한다.
다음과 같은 일에는 사용하지 않는다.
Tips
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
SQL 서버들 간의 속도 차이 (단위:초) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
위의 테스트는 MySQL의 경우 8M 캐시를 사용하도록 설정한 것이고 다른 데이터베이스들은 설치 기본값을 이용하였다. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
중요한 MySQL 기동 옵션들 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
테이블 최적화 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL이 데이터를 저장하는 방식 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL 테이블 유형들 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL 레코드 유형(ISAM/MyISAM 테이블과 관련하여서만) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL 캐시들 (한 번 적재되어 모든 쓰레드가 공유) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL은 행(raw) 캐시를 가지고 있지 않다. 그러나, 운영체제에게 이 일을 시킬 수 있다! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL 버퍼 변수들 (공유되지 않으며 실행 중 적재됨) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL 테이블 캐시가 동작하는 방식 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL 확장들 / 속도 증진 최적화 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL이 인덱스를 사용할 경우 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL이 인덱스를 사용하지 않을 경우 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
EXPLAIN 사용법 익히기 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
지나치게 느리다고 생각되는 모든 쿼리 문장에 대해 EXPLAIN 을 사용한다. mysql> explain select t3.DateOfAction, t1.TransactionID -> from t1 join t2 join t3 -> where t2.ID = t1.TransactionID and t3.ID = t2.GroupID -> order by t3.DateOfAction, t1.TransactionID; +-------+--------+---------------+---------+---------+------------------+------+---------------------------------+ | table | type | possible_keys | key | key_len | ref | rows | Extra | +-------+--------+---------------+---------+---------+------------------+------+---------------------------------+ | t1 | ALL | NULL | NULL | NULL | NULL | 11 | Using temporary; Using filesort | | t2 | ref | ID | ID | 4 | t1.TransactionID | 13 | | | t3 | eq_ref | PRIMARY | PRIMARY | 4 | t2.GroupID | 1 | | +-------+--------+---------------+---------+---------+------------------+------+---------------------------------+ 유형 ALL과 범위는 잠재적인 문제점을 알리고 있다. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
SHOW PROCESSLIST 사용법 익히기 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
현재 진행 상황을 파악하기 위해서는 SHOW processlist 를 사용한다. +----+-------+-----------+----+---------+------+--------------+-------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------+-----------+----+---------+------+--------------+-------------------------------------+ | 6 | monty | localhost | bp | Query | 15 | Sending data | select * from station,station as s1 | | 8 | monty | localhost | | Query | 0 | | show processlist | +----+-------+-----------+----+---------+------+--------------+-------------------------------------+ mysql에서 KILL을 사용하거나 명령행에서 mysqladmin을 사용하여 불필요한(runaway) 쓰레드들을 없앨 수 있다. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL이 쿼리를 해결하는 방법을 찾는 방법 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
다음 명령들을 실행해서 결과를 이해하도록 노력한다.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL은 이런 경우 극히 우수하다 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL 사용에 있어서 피해야 할 것들 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL의 독특한 잠금들(locks) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
문제를 쉽게 해결하기 위해 MySQL로부터 더 많은 정보를 얻는 기법들 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL 만의 기능들을 항상 주석처리함으로써 쿼리의 이식성 높일 수 있다. SELECT /*! SQL_BUFFER_RESULTS */ ...
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
트랜잭션 사용예 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
REPLACE 사용예 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
일반적인 팁 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
MySQL 3.23을 사용할 때 얻을 수 있는 이점 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
실제 작업에서 중요한 기능들 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
댓글 0개
| 엮인글 0개
38개(1/2페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
38 | [PHP] 파파고 API | 관리자 | 4584 | 2021.01.29 16:33 |
37 | [AWS] 아마존 개인화 amazon personalize-dg | 관리자 | 3999 | 2020.01.22 19:33 |
36 | [PHP] 소녀나라 구인공고 | 관리자 | 6297 | 2018.04.17 12:54 |
35 | [MYSQL] 게시판 페이징(?) 속도 향상 [1] | 관리자 | 14502 | 2014.08.13 02:18 |
34 | [MYSQL] 페이징 쿼리, 페이징 기법 | 관리자 | 25286 | 2014.08.13 01:48 |
33 | [MYSQL] 이메일 필터 정규식 | 관리자 | 10685 | 2014.07.25 11:32 |
32 | [PHP] Zen HTML Selectors | 관리자 | 9003 | 2014.03.12 17:16 |
31 | [PHP] zen coding~! 젠코딩 Zen HTML Elements | 관리자 | 11313 | 2014.03.12 17:16 |
30 | [PHP] 에디트 플러스 zen coding CSS | 관리자 | 10564 | 2014.03.12 17:16 |
29 | [PHP] php + jquery ajax + json | 관리자 | 8489 | 2014.03.04 15:30 |
28 | [PHP] php 엑셀 파일 생성시 한글깨짐 | 관리자 | 11508 | 2014.02.21 16:31 |
27 | [PHP] 날씨 API, 기상청 날씨 파싱 | 관리자 | 14032 | 2014.01.22 15:32 |
26 | [PHP] 도로명주소 | 관리자 | 8607 | 2014.01.09 11:39 |
25 | [MYSQL] MYSQL EXPLAIN | 관리자 | 8836 | 2013.10.28 12:10 |
24 | [PHP] PHP, AJAX, JSON 리턴 | 관리자 | 10155 | 2013.10.18 17:49 |
23 | [MYSQL] mysql성능 향상 | 관리자 | 7252 | 2013.10.07 12:52 |
>> | [MYSQL] mysql 최적화 | 관리자 | 7943 | 2013.10.07 12:35 |
21 | [PHP] PHP 변수 초기화 및 조건부 할당 | 관리자 | 9234 | 2013.09.25 00:57 |
20 | [PHP] 킴스큐 썸네일 사이즈 변경 | 관리자 | 7548 | 2013.07.16 14:14 |
19 | [PHP] 간단하게 만드는 캐싱 | 관리자 | 8455 | 2013.05.21 14:11 |
많이 본 글
댓글 많은 글