как программное обеспечение для управления базами данных, как Navicat выбрать большое количество данных из таблицы

Я пишу программу на С ++ на платформе Linux. Эта программа похожа на linux-mini-navicat, которая может подключаться к другой базе данных (postgresql, mysql, mssql, oracle) и выполнять sql. И программа запускает интерфейсный сервер (thrift). для клиента подключиться и выполнить команду sql.

Когда я выполняю «select * from table», в котором содержится много данных, может быть, миллион или 10 миллионов или больше, моя программа завершается с помощью linux перед возвратом данных клиенту, из-за того, что из памяти не хватает.

Мне интересно, как Navicat достигает этого, и как я могу достичь этого в моей программе?

Надеюсь, я проясню свой вопрос.

-2

Решение

Обычно нет необходимости извлекать (и хранить в памяти) все данные из большой таблицы за один раз. Если вы отображаете результаты запроса, вы можете получить достаточно данных, чтобы заполнить таблицу на экране, а затем загрузить их, когда пользователь прокрутит таблицу. Если вы разработаете какой-нибудь алгоритм анализа, вы все равно сможете анализировать данные таблицы в виде фрагментов. Смотрите документацию по прокручиваемым курсорам для вашей базы данных.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]