У меня есть чрезвычайно большая таблица ~ миллиард строк.PHP - оптимизировать SQL, выбрать несколько строк для очень БОЛЬШОЙ таблицы
foreach($idArray as $id){
'SELECT DIE_X, DIE_Y, LOG_INDEX, TREND_ELEMENT, TREND_DATA FROM trend_data_level_5 WHERE TREND_INDEX =' $id;
$result = mysql_query($query);
}
Этот подход занимает много времени, так как мой стол становится все больше и больше. Я использую механизм innoDB для моей базы данных SQL.
Я запустил таймер, и указанная выше петля взяла ~ 17 секунд для стола размером ~ 15 милион. Представьте себе, как долго это займет миллиардные ряды!
Могу ли я получить это время значительно? Если да, то какой лучший подход?
EDIT: Вот то, что таблица выглядит
------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table
|
+--------------------+--------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------+
| trend_data_level_5 | CREATE TABLE trend_data_level_5 (
LOG_INDEX int(5) DEFAULT NULL,
DIE_X int(3) DEFAULT NULL,
DIE_Y int(3) DEFAULT NULL,
TREND_INDEX int(10) DEFAULT NULL,
TREND_ELEMENT varchar(3) DEFAULT NULL,
TREND_DATA int(5) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+--------------------+--------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------+
Является ли «ID» ключом на столе? или, по крайней мере, проиндексированы? Насколько велика «ID» (int, varchar и т. Д.). Предполагая, что он проиндексирован, у вас достаточно памяти на машине для загрузки всего индекса? –
Измените свое сообщение и добавьте вывод 'SHOW CREATE TABLE table_1', чтобы мы могли видеть его столбцы, типы данных и индексы. –
Хорошо, я внес соответствующие изменения. Проверьте структуру таблицы –