mysql日期怎麼優化 Mysql查詢時間優化

2021-10-17 12:24:28 字數 1495 閱讀 9729

select  count(*) from table where buytime>='2011-5-31 00:00:00' and buytime<='2011-6-6 23:59:59' group by itemname

select  count(*) from table where buytime>=unix_stamp('2011-5-31 00:00:00') and buytime<=unix_stamp('2011-6-6 23:59:59') group by itemname.

在mysql中有傳統時間函式和unix時間戳的互換函式。unix_timestamp(datetime) 和from_unixtime(unixtime)

之前說過mysql的時間欄位有date,time,datetime,timestamp等,在實際查詢時間段時,我們經常將整個字段儲存進去,例如像2011-03-10 00:00:00,也有分開儲存年,月,日的方式,或者使用right()等字元擷取函式來進行查詢操作。anyway,我們都是要對一段時間進行查詢。筆者最近在做遊戲道具購買方面的查詢,按照需要,我們要按照周的方式,查詢一周的道具銷售量。使用的方式為下面的這種:

select  count(*) from table where buytime>='2011-5-31 00:00:00' and buytime<='2011-6-6 23:59:59' group by itemname

這是一種比較傳統的方式,需要我們自己指定開始和結束時間,經常使用》,between,

unix時間戳

每個時間都對應了乙個唯一的unix時間戳,時間從1970-1-1 00:00:00開始計時,每過一秒,就加1,在mysql中有傳統時間函式和unix時間戳的互換函式。unix_timestamp(datetime) 和from_unixtime(unixtime)

mysql> select unix_timestamp('2011-8-2 8:50:34');

| unix_timestamp('2011-8-2 8:50:34') |

|                         1312246234 |

1 row in set (0.03 sec)

mysql> select from_unixtime(1312246234);

| from_unixtime(1312246234) |

| 2011-08-02 08:50:34       |

1 row in set (0.00 sec)

如此一拉,我們把原來的時間字段,替換成現在unix的整型字段,通過對整數比較,可以大大提高效率,查詢時,我們把開始結束時間轉換成unix時間戳。

select  count(*) from table where buytime>=unix_stamp('2011-5-31 00:00:00') and buytime<=unix_stamp('2011-6-6 23:59:59') group by itemname.

不過這種方式,比較麻煩的就是查詢之後需要將時間翻轉一次。

mysq基礎優化

skip name resolve skip locking skip innodb skip bdb key buffer 1g記憶體推薦設定為256m,2g記憶體推薦設定為512m wait timeout 3或者5 2g記憶體推薦設定為5 max connections 如果訪問量很大可以設定...

mysql怎麼優化 MYSQL如何優化?

mysql如何優化?結合你的經驗 1.資料庫的設計 盡量把資料庫設計的更小的佔磁碟空間.1 盡可能使用更小的整數型別.mediumint就比int更合適 2 盡可能的定義欄位為not null,除非這個字段需要null.3 如果沒有用到變長字段的話比如varchar,那就採用固定大小的紀錄格式比如c...

php修改mysql密碼 怎麼修改mysql密碼

怎麼修改mysql密碼?修改mysql密碼的方法 方法1 用set password命令 首先登入mysql。格式 mysql set password for 使用者名稱 localhost password 新密碼 例子 mysql set password for root localhost...