Предположим, у меня есть таблица в моей базе данных с 1.000.000
записями.
Если я выполню:
SELECT * FROM [Table] LIMIT 1000
Этот запрос займет столько же времени, как если бы у меня была эта таблица с 1000
записями, и просто выполните:
SELECT * FROM [Table]
Я не ищу, если это займет точно такое же время. Я просто хочу знать, займет ли выполнение первого намного больше времени, чем второго.
Я сказал 1.000.000
записей, но это может быть 20.000.000
. Это был просто пример.
Edit:
Конечно, при использовании LIMIT и без его использования в той же таблице запрос, построенный с использованием LIMIT, должен выполняться быстрее, но я не спрашиваю об этом ...
Чтобы сделать его общим:
Table1
: X
записей
Table2
: Y
записей
(X << Y)
То, что я хочу сравнить, это:
SELECT * FROM Table1
и
SELECT * FROM Table2 LIMIT X
Редактировать 2:
Вот почему я спрашиваю:
У меня есть база данных с 5 таблицами и взаимосвязями между некоторыми из них. Одна из этих таблиц будет (я уверен на 100%) содержать около 5.000.000
записей. Я использую SQL Server CE 3.5, Entity Framework в качестве ORM и LINQ to SQL для выполнения запросов.
Мне нужно выполнить в основном три вида непростых запросов, и я думал о том, чтобы показать пользователю предел записей (как это делают многие веб-сайты). Если пользователь хочет видеть больше записей, у него есть возможность ограничить поиск.
Итак, вопрос возник, потому что я думал о том, чтобы сделать это (ограничение X
записей на запрос) или если в базе данных хранятся только X
результаты (последние), что потребует некоторого удаления в базе данных, но я просто думал ...
Таким образом, эта таблица может содержать 5.000.000
записей или более, и я не хочу показывать пользователю 1000
или около того, и даже в этом случае запрос все еще будет таким медленным, как если бы он был возвращение 5.000.000
строк.