MySQL: Как выбрать все строки из таблицы КРОМЕ последней

Если это действительно узкое место и выжимание скорости из подсчета стоит кода, который не так хорош, как функциональные решения, вам будет непросто обойти циклы for в современных движках javascript. В моих тестах это примерно вдвое быстрее, чем при использовании reduce():

var array = [["a", "b"],["c", "d"],["b", "d"],["c", "a", "b"], ["a", "b", "c", "d"]];

let counts = new Map()
for (let i = 0; i < array.length; i++){
    for (let j = 0; j < array[i].length; j++){
        let n = counts.get(array[i][j]) || 0
        counts.set(array[i][j], n + 1)
    }
}

JSperf Тест здесь

9
задан tvanfosson 24 November 2008 в 22:30
поделиться

2 ответа

Последняя строка имеет самый высокий идентификатор? Если так, я думаю, что это работало бы:

SELECT * FROM TABLE WHERE ID != (SELECT MAX(ID) FROM TABLE)

MySQL действительно позволяет, подвыбирает в текущей версии, правильно?

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

15
ответ дан 4 December 2019 в 12:22
поделиться

ВЫБЕРИТЕ ОТЛИЧНУЮ таблицу t1 t1.columns FROM
Таблица t2 INNER JOIN НА t1.id <t2.id

По моему опыту, MySQL любит эту технику, возвращаясь несколько версий.

2
ответ дан 4 December 2019 в 12:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: