-
Notifications
You must be signed in to change notification settings - Fork 0
18.06.28
chy edited this page Jul 31, 2018
·
2 revisions
#1
select *
from
A join B
on A.id = B.id and A.age > 10;
#2
select *
from
(select * from A where A.age > 10) join B
on A.id = B.id2번과 같이 join시 inner쿼리를 사용하는 경우 derived table을 생성하고 이는 성능을 저하시킨다
innodb_buffer_pool_size = 2G 를 my.ini 또는 my.cnf에 설정
mysql --help --verbose
# Default options are read from the following files in the given order 에서 위치 확인#1
/* Duration / Fetch
0.016 sec / 3.375 sec */
SELECT *
FROM
customer_event A
JOIN customer B ON A.meter_no = B.meter_no
JOIN meter_log C ON A.meter_no = C.meterNumber AND A.event_time = C.MeteringTime
WHERE event_type = 5 AND (DATE(event_time) BETWEEN '2018-03-01' AND '2018-03-31')
#2
/* Duration / Fetch
0.016 sec / 0.156 sec */
SELECT *
FROM
customer_event A
JOIN customer B ON A.meter_no = B.meter_no
JOIN meter_log C ON A.meter_no = C.meterNumber AND A.event_time = C.MeteringTime
WHERE event_type = 5 AND (event_time BETWEEN '2018-03-01' AND '2018-03-31')event_time은 datetime 타입을 가진 컬럼이다.
WHERE절에 Date() 하나 있고 없고 차이에, fetch time이 저정도나 차이가 난다. Date()를 이용해도 index를 타기에 괜찮을 줄 알았지만 아니였다.
html parser가 script를 마주치면, script가 다운로드 될 때 까지 dom 로딩이 중지됨
<script type="text/javascript" src="path/to/script1.js" async></script>
<script type="text/javascript" src="path/to/script1.js" defer></script>async : 비동기적으로 다운로드 후 실행
defer : 비동기적으로 다운로드 후 DOM이 로드된후 순서대로 실행
<body> 끝에서 사용하기 보다, <head>에서 async 또는 defer과 사용하는 것이 좋다.