2016-08-20 83 views
0

我創建了一張表來存儲數百萬條記錄,這就是它每天86400秒x 365天x 10年= 315,360,000行只有3列的記錄, 帶有datetime,decimal和smallint(只有3個字段)datetime作爲索引。PHP在巨大的數據庫中最快的查詢mysql

我正在考慮將日期時間轉換爲INT無符號(PHP時間())以減少存儲。用datetime,decimal和smallint,我有2.5GB的1張表。我還沒有嘗試用INT替換DATETIME。

對此表的插入是1次工作,並且我將有很多SELECT語句用於分析目的,因此我將InnoDB更改爲MyISAM。

任何想法或建議?

+0

取決於你的選擇。 –

+0

非常簡單的選擇,並且WHERE子句只指向第一個字段。 – Fire

+0

myisam或innodb在這種情況下怎麼樣?我應該去找myisam嗎? – Fire

回答

0

指數是用來獲取一個表上的更快的搜索的一件事: http://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html

在基礎層面上,指標有責任尋找的東西,當你問的引擎不是在整個表遍歷對於。

一些在關於使用索引的鏈接陳述的事情:

要找到匹配的快速WHERE子句的行。

消除考慮中的行。如果在多個索引之間可以選擇 ,則MySQL通常使用查找最少行數(最具選擇性的索引)的索引。

看看是否適合您的需要

+0

我瞭解索引部分,我的這裏的情況只是單一索引,即Datetime或INT。 – Fire