Wednesday, October 20, 2004

query comparison

ทดสอบ query สองอันนี้นะครับ

select
count(*) as count,
itemid
from
stnreport
where itemid='1000000000000012289'
group by itemid

กับ สร้าง table ก่อนแล้วค่อย query

create table item_to_date
select
count(*) as count,
itemid
from
stnreport
group by itemid order by count desc

แล้วค่อย

select count from item_to_date where itemid='1000000000000012289'

ผลคือ
กรณีที่ 1 เวลาจะได้ผลนับ ใช้เวลาประมาณ 0.50 วินาที
กรณีที่ 2 เวลาจะได้ผลนับ ใช้เวลาประมาณ 0.02 วินาที (บางทีก็ 0.00 ไปเลย)

ดังนั้น กรณีที่สองดีกว่า ถึงแม้ว่าแต่ละวันจะต้องรันคำสั่ง create table โดยใช้เวลารันประมาณ 1.33 วินาทีเท่านั้นเอง คุ้มสุดๆ เพราะในแต่ละครั้งที่จะใช้ นับ ข้อมูล todate ก็จะใช้เวลาน้อยมากจนเกือบเหมือนไม่ได้ใช้อะไรเลยครับ จ๊าบจริงๆ

No comments:

Post a Comment