Самый эффективный способ получить количество строки таблицы

В соответствии с ответом Лассевка, я получил «Сниппи» . Это было разработано для C # в глубине, и пользовательский интерфейс довольно мусор, но он работает - и позволяет вам писать дополнительные члены (методы, вложенные классы и т. Д.), Например,

public static void Foo()
{ 
    Console.WriteLine("Hello");
}
...
Foo();

(... используется, чтобы сказать Сниппи, что «все, что здесь находится, принадлежит Мэйну».)

65
задан Markus Malkusch 8 January 2014 в 16:03
поделиться

4 ответа

If it's only about getting the number of records (rows) I'd suggest using:

SELECT TABLE_ROWS
FROM information_schema.tables 
WHERE table_name='the_table_you_want' -- Can end here if only 1 DB 
  AND table_schema = DATABASE();      -- See comment below if > 1 DB

(at least for MySQL) instead.

59
ответ дан 24 November 2019 в 15:12
поделиться

Next to the information_schema suggestion, this:

SELECT id FROM table ORDER BY id DESC LIMIT 1

should also be very fast, provided there's an index on the id field (which I believe must be the case with auto_increment)

0
ответ дан 24 November 2019 в 15:12
поделиться

попробуйте это

Выполните этот SQL:

SHOW TABLE STATUS LIKE '<tablename>'

и получите значение поля Auto_increment

29
ответ дан 24 November 2019 в 15:12
поделиться

Ниже приведен наиболее эффективный способ найти следующее значение AUTO_INCREMENT для таблицы. Это быстро даже для баз данных, содержащих миллионы таблиц, поскольку не требуется запрашивать потенциально большую базу данных information_schema .

mysql> SHOW TABLE STATUS LIKE 'table_name';
// Look for the Auto_increment column

Однако, если вы должны получить это значение в запросе, вы должны перейти к базе данных information_schema .

SELECT `AUTO_INCREMENT`
FROM   INFORMATION_SCHEMA.TABLES
WHERE  TABLE_SCHEMA = 'DatabaseName'
AND    TABLE_NAME   = 'TableName';
88
ответ дан 24 November 2019 в 15:12
поделиться
Другие вопросы по тегам:

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