成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL查詢時間段使用INT還是DateTime的測試

數據庫 MySQL
MySQL查詢時間段是我們經常要用到的操作,那么使用INT還是DateTime會更為高效呢?閱讀下文,您就可以找到答案。

MySQL查詢時間段的時候,選擇INT會更高效,還是選擇DateTime會更為高效呢?針對此問題,下面將做一個測試,看看MySQL查詢時間段究竟應該使用INT還是DateTime。

環境:

Windows XP
PHP Version 5.2.9
MySQL Server 5.1 

***步、創建一個表date_test(非定長、int時間)

CREATE TABLE `test`.`date_test` (
`id` INT NOT NULL AUTO_INCREMENT ,
`start_time` INT NOT NULL ,
`some_content` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = InnoDB;

第二步、創建第二個表date_test2(定長、int時間)

CREATE TABLE `test`.`date_test2` (
`id` INT NOT NULL AUTO_INCREMENT ,
`start_time` INT NOT NULL ,
`some_content` CHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = InnoDB;

第三步、創建第三個表date_test3(varchar、datetime時間)

CREATE TABLE `test`.`date_test3` (
`id` INT NOT NULL AUTO_INCREMENT ,
`start_time` DATETIME NOT NULL ,
`some_content` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = InnoDB;

第四步、創建第四個表date_test3(char、datetime時間)

CREATE TABLE `test`.`date_test4` (
`id` INT NOT NULL AUTO_INCREMENT ,
`start_time` DATETIME NOT NULL ,
`some_content` CHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = InnoDB;

ok,現在我們開始做測試,環境是php,先向各個表插入一百萬條數據。插入的時候分200次,每次進庫5000條。

表一執行記錄:頁面運行時間: 26.5997889042 秒,插入的時候發現一個有趣的現象:SELECT count( id ) FROM `date_test` WHERE 1 的結果是100w,而直接select * from `date_test`卻是1,000,374條結果。(后來看到這是一個可能接近的值,請參看MySQL FAQ 3.11)。

表二執行記錄:頁面運行時間: 62.3908278942 秒,這次記錄是1,000,066條。

表三執行記錄:頁面運行時間: 30.2576560974 秒,這次的是1,000,224條。

表四執行記錄:頁面運行時間: 67.5393900871 秒,這次的是:1,000,073條。

現在把四個表的start_time字段一一加上索引。

測試四個表的更新,分別update 100條記錄,并記錄時間:

表一:頁面運行時間: 2.62180089951 秒(非定長,int時間)

表二:頁面運行時間: 2.5475358963 秒(定長,int時間)

表三:頁面運行時間: 2.45077300072 秒(varchar,datetime時間)

表四:頁面運行時間: 2.82798409462 秒(char,datetime時間)

測試四個表的讀取,分別select 100條隨機記錄,以主鍵id為條件查詢,并記錄時間:

表一:頁面運行時間: 0.382651090622 秒(非定長,int時間)

表二:頁面運行時間: 0.542181015015 秒(定長,int時間)

表三:頁面運行時間: 0.334048032761 秒(varchar,datetime時間)

表四:頁面運行時間: 0.506206989288 秒(char,datetime時間)

測試四個表的讀取,分別select 10條隨機記錄,以star_time為條件查詢,并記錄時間:

表一:頁面運行時間: 30.1972880363 秒(非定長,int時間)

表二:頁面運行時間: 65.1926910877 秒(定長,int時間)

表三:頁面運行時間: 39.7210869789 秒(varchar,datetime時間)

表四:頁面運行時間: 70.4632740021 秒(char,datetime時間)

因為量比較小,所以我們默認即使是微小的變化,也是有意義的。

結論:

大數據量下,如果存在大量的select * from table where 時間>XX這樣的查詢,在MySQL5.1時使用int換datetime是有意義的。
 

 

 

【編輯推薦】

MySQL外鍵和參照完整性的關系

MySQL轉換Oracle的七大注意事項

解讀MySQL數據庫產品定價新策略

帶您深入了解MYSQL字符串連接

詳解MySQL+Apache集群模式的實現

責任編輯:段燃 來源: 互聯網
相關推薦

2010-09-25 16:32:02

SQL語句

2010-10-13 16:49:56

MySql查詢時間段

2010-09-24 19:23:51

SQL查詢時間段

2010-11-25 10:21:20

MySql查詢時間段

2025-02-17 09:20:00

MySQL存儲數據庫

2022-04-15 10:39:47

MySQL數據類型

2010-09-09 10:42:30

SQL函數時間

2010-07-19 16:52:23

SQL Server

2010-11-25 11:42:23

MySQL查詢

2010-05-31 16:46:40

2010-09-26 17:14:23

SQL查詢

2021-09-29 20:56:50

MySQLMariaDB字段

2011-10-10 17:08:31

數據庫SQL Server

2009-08-05 14:09:04

C#日期轉換

2010-09-25 16:53:39

SQL語句

2015-07-29 13:22:40

.NET代碼

2009-05-18 13:56:48

MySQLdatetimetimestamp

2020-08-10 11:20:59

索引MySQL數據庫

2021-03-07 08:46:54

Java時間操作Joda-Time

2010-10-28 17:08:11

Oracle查詢
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区免费在线观看 | 亚洲成人av在线播放 | 日韩一区二区三区在线 | 亚洲香蕉在线视频 | 99久久久久久99国产精品免 | 亚洲成人精品一区 | 91色视频在线观看 | 国产精品久久国产精品 | 午夜成人免费视频 | 亚洲欧美日韩精品久久亚洲区 | 欧美在线国产精品 | 波多野结衣一区二区三区 | 国产你懂的在线观看 | 黄色免费在线观看网站 | 免费在线观看一区二区 | 欧美亚洲国产成人 | a级免费黄色片 | 国产成人精品一区二三区在线观看 | 成人一区二区三区在线观看 | 视频国产一区 | 日本在线黄色 | 成人久久18免费网站 | 欧美日韩一| www.97zyz.com| 永久免费视频 | 亚洲国产成人av好男人在线观看 | 欧美日韩亚洲视频 | 99久久精品一区二区毛片吞精 | www.狠狠干 | 欧美日韩国产综合在线 | 亚洲色图婷婷 | 免费一级黄色电影 | 精品一区二区电影 | 免费一区 | 草久视频| 超碰人人插 | 日韩成人在线播放 | 国产一区二区三区免费 | 黄色毛片免费看 | 福利视频一区二区 | 精品亚洲一区二区三区 |