Быстрый и точный подсчёт количества строк в большой таблице - MySQL

Узнай цену своей работы

Формулировка задачи:

Добрый день, может кто подскажет такую вещь написал клиент для работы с бд и нужно при старте показывать количество записей в таблице.
SELECT COUNT(*) FROM
работает очень долго, в таблице будет от 500млн. до 2млрд записей таблица Inno_DB MYSQL. У меня за час так и не посчитал кол-во строк. Попробовал на 20млн записей заняло около 30 сек. Может есть какая-нибудь возможность заранее где-нибудь запустить эту процедуру подсчета и хранить где-то значение или как-нибудь по другому получить его. Или вот допустим идея добавить колонку id(int) auto increment и делать запрос последней строчки, получается же последняя строчка будет равна количеству записей в бд ? В общем буду благодарен за любые идеи помощь. Время запроса, ну может максимум должно быть 10-15 сек. Спасибо.

Решение задачи: «Быстрый и точный подсчёт количества строк в большой таблице»

textual
Листинг программы
LOAD DATA INFILE 'data.txt' 
IGNORE INTO TABLE tablename 
CHARACTER SET UTF8
FIELDS TERMINATED BY ':'
LINES TERMINATED BY '\r\n' (col1, col2);

Объяснение кода листинга программы

  1. LOAD DATA INFILE 'data.txt' - команда для загрузки данных из файла 'data.txt' в таблицу
  2. IGNORE INTO TABLE tablename - указывает, что данные нужно загрузить в таблицу, игнорируя строки, которые не соответствуют структуре таблицы
  3. CHARACTER SET UTF8 - указание, что данные в файле и в таблице должны быть совместимы по кодировке (в данном случае UTF-8)
  4. FIELDS TERMINATED BY ':' - указание разделителя полей (в данном случае ':')
  5. LINES TERMINATED BY '\r\n' - указание разделителя строк (в данном случае '\r\n')
  6. (col1, col2) - указание столбцов, в которые нужно загрузить данные (в данном случае col1 и col2)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы