CREATE TABLE t_latency (
id INT NOT NULL PRIMARY KEY,
server_id INT NOT NULL,
ts DATETIME NOT NULL,
latency FLOAT NOT NULL,
KEY ix_latency_server_time_latency (server_id, ts, latency),
KEY ix_latency_server_latency (server_id, latency),
KEY ix_latency_time (ts)
)
我希望能夠查詢I/O延遲從下午1:00到3:00 PM服務器Atriedes
上August 19th, 2007
SELECT *
FROM t_latency
WHERE server_id = @id_of_atriedes
AND ts BETWEEN '2007-08-19 01:00' AND '2007-08-19 03:00'
-- will use ix_latency_server_time_latency
我想還能夠查詢I/O延遲超過40毫秒的服務器Harkonnen上的I/O延遲時間。
SELECT *
FROM t_latency
WHERE server_id = @id_of_harkonnen
AND latency > .04
-- will use ix_latency_server_latency
我想找到所有有上述100
毫秒延遲上August 1st, 2007
的服務器。
SELECT DISTINCT server
FROM t_latency
WHERE ts >= '2007-08-01 00:00'
AND ts < '2007-08-02 00:00'
AND latency > 0.1
-- will use ix_latency_time
無需ID列;服務器加時間戳應該是唯一的,因此組合應該是主鍵。 – 2009-07-29 16:47:49