Быстрый и точный подсчёт количества строк в большой таблице - MySQL
Формулировка задачи:
Добрый день, может кто подскажет такую вещь написал клиент для работы с бд и нужно при старте показывать количество записей в таблице.
работает очень долго, в таблице будет от 500млн. до 2млрд записей таблица Inno_DB MYSQL. У меня за час так и не посчитал кол-во строк. Попробовал на 20млн записей заняло около 30 сек. Может есть какая-нибудь возможность заранее где-нибудь запустить эту процедуру подсчета и хранить где-то значение или как-нибудь по другому получить его. Или вот допустим идея добавить колонку id(int) auto increment и делать запрос последней строчки, получается же последняя строчка будет равна количеству записей в бд ?
В общем буду благодарен за любые идеи помощь.
Время запроса, ну может максимум должно быть 10-15 сек.
Спасибо.
SELECT COUNT(*) FROM
Решение задачи: «Быстрый и точный подсчёт количества строк в большой таблице»
textual
Листинг программы
LOAD DATA INFILE 'data.txt' IGNORE INTO TABLE tablename CHARACTER SET UTF8 FIELDS TERMINATED BY ':' LINES TERMINATED BY '\r\n' (col1, col2);
Объяснение кода листинга программы
LOAD DATA INFILE 'data.txt'
- команда для загрузки данных из файла 'data.txt' в таблицуIGNORE INTO TABLE tablename
- указывает, что данные нужно загрузить в таблицу, игнорируя строки, которые не соответствуют структуре таблицыCHARACTER SET UTF8
- указание, что данные в файле и в таблице должны быть совместимы по кодировке (в данном случае UTF-8)FIELDS TERMINATED BY ':'
- указание разделителя полей (в данном случае ':')LINES TERMINATED BY '\r\n'
- указание разделителя строк (в данном случае '\r\n')(col1, col2)
- указание столбцов, в которые нужно загрузить данные (в данном случае col1 и col2)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д