@Keliorw

Как максимально быстро взять последний элемент таблицы?

На данный момент запрос выглядит так:
$request = "SELECT UF_DATE FROM trade_history ORDER BY ID DESC LIMIT 1";
        $element = $mysqli->query($request);


Но относительно того как я этот запрос делал средствами битрикса, ничего не поменялось по времени выполнения, даже наверное медленнее стало, учитывая логи.

По логам у меня этот запрос 30 раз выполнялся 9 секунд, а хотелось бы снизить хотя бы до 1-2секунд

Может кто знает как можно это сделать быстрее?
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 2
BojackHorseman
@BojackHorseman Куратор тега PHP
...в творческом отпуске...
направленность индексов.

все остальные потуги фантиков читать индекс по возрастанию, а, чтобы не тормозило , загонять полностью в озу, - дилетанство.

искомый элемент всегда будет первым в индексе, построенном по убыванию. взять первый элемент индекса - это быстрая операция и для нее не надо не озу, не усилий, ничего. только прочесть статью про индексы в доке субд.
Ответ написан
Immortal_pony
@Immortal_pony Куратор тега PHP
100 мсек.
Только dbname поменяйте на свой.

SELECT
    `trade_history`.`uf_date`  
FROM  
    `information_schema`.`tables` AS `informationSchemaTable`
    JOIN `dbname`.`trade_history` ON (`informationSchemaTable`.`auto_increment`-1=`trade_history`.`id`)
WHERE 1
    AND `informationSchemaTable`.`table_schema` = 'dbname'
    AND `informationSchemaTable`.`table_name` = 'trade_history'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы