Проблема производительности - plist vs sqlite в iOS - PullRequest
4 голосов
/ 11 мая 2011

Мне нужно отслеживать некоторые переменные и сохранять их очень часто.Мне не нужен сложный поиск и сортировка, просто простое чтение / запись.

Какая разница в производительности чтения / записи между plist и sqlite?

Помимо двух вышеупомянутых методов, я должениспользовать основные данные?

Пожалуйста, дайте мне несколько советов.

Спасибо.

Ответы [ 3 ]

7 голосов
/ 11 мая 2011

В SQlite вы можете выполнять все функции, связанные с SQL, такие как создание, удаление, а также хранить большое количество данных. Но в Plist вы можете хранить их.

Plist и SQLite используются по-разному, как показано ниже.

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

SQLite - это полноценная база данных.Размеры файлов (на iphone) практически не ограничены.Встроены возможности сортировки. Возможны схемы запросов и реляционных таблиц.Производительность должна быть такой же хорошей, как у любого алгоритма сортировки, который вы можете придумать.База данных sqlite, с другой стороны, будет загружать только те данные, которые вы запрашиваете.Я не уверен, как структурированы ваши данные, но вы могли бы довольно легко создать пары ключ-значение с одной таблицей базы данных.(Одна таблица с ключевым столбцом и столбцом значений) Затем, если бы это был я, я написал бы класс Objective-C, чтобы обернуть запросы к базе данных, чтобы я мог написать простые операторы, такие как:

NSString *welcomeText = [[MyData sharedData] dataWithKey:@"WelcomeText"];

Получение данных в базу данных в первую очередь не должно быть сложным.Вы можете использовать утилиту командной строки sqlite3 для массовой загрузки ваших данных.Есть команда .import, которая будет импортировать ваши данные из текстового файла.

3 голосов
/ 11 мая 2011

Из ответа, предоставленного @ Роберт Харви в этом предыдущем SO вопросе plist или sqlite

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

SQLite - это полноценная база данных. Размеры файла (на iphone) по сути неограниченно. Сортировка Возможности встроены. Запросы и реляционные таблицы конструкций возможный. Производительность должна быть как хорошо, как любой алгоритм сортировки вы может придумать. База данных sqlite, с другой стороны, будет загружать только данные, которые вы запрашиваете. Я не уверен как ваши данные структурированы, но вы могли бы довольно легко создавать пары ключ-значение с одной таблицей базы данных.

Если вы храните «огромные данные», тогда Вы получите пользу от sqlite. Особенно, если вы собираетесь быть выполнение сложных запросов, извлечение, поиск и сортировка и т.д ..

0 голосов
/ 11 мая 2011

Если вы собираетесь выполнять такие операции, как поиск, сортировка, вы должны использовать sqlite.В sqlite мы можем хранить большое количество данных, но в plist это невозможно. Я не знаю, как это будет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...