Какая из операций потребует меньше системных ресурсов?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Какая из операций потребует меньше системных... Expand / Collapse
Автор
Сообщение
08.09.2006 14:28
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 20.12.2006 17:51
Сообщ.: 8, Visits: 14
Есть выбор - использовать MySQL или просто запись в текстовый файл.
Мне нужно выбрать то, что меньше съест системных ресурсов.

Пример 1.
Мне нужно записать один байт данных.
Я могу открыть файл (скриптом PHP), положить в него букву и закрыть.
Или соединиться с MySQL и добавить запись... Что меньше съест ресурсов?

Пример 2.
Нужно считать цифру из БД, увеличить на одну и сохранить.
Можно взять файл который будет БД, считать из него цифру, увеличить на одну и перезаписать этот файл.
Или соединиться с MySQL, считать строчку, обновить запись... Что меньше съест ресурсов?
Сообщ. #904071
08.09.2006 15:06
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Работа с файлом безусловно менее требовательная к ресурсам операция по сравнению с БД, но у БД есть свои достоинства. К примеру, возможность блокировки данных на время их изменения. В примере, номер 2 при одновременной работы с файлом двух пользователей операция увеличения может привести к неправильному результату. Допустим, что в файле хранится число 3 и два пользователя одновременно захотят увеличить это значение на 1.

  1. пользователь №1 открывает файл и читает оттуда 3
  2. пользователь №2 открывает файл и читает оттуда 3
  3. пользователь №1 выполняет увеличение 3+1=4
  4. пользователь №2 выполняет увеличение 3+1=4
  5. пользователь №2 записывает цифру 4
  6. пользователь №1 записывает цифру 4

В итоге две операции изменения слились в одну. В БД есть встроенные механизмы контроля таких ситуаций. При работы с файлами можно сделать защиту от таких ситуаций, но ее придется писать самому и проверять. В БД же это уже есть "бесплатно".

Поэтому прежде чем выбрать файл или Mysql разберись будут ли у тебя операции одновременного доступа.

Есть и другие критерии, которые следует учесть. БД позволяет хранить строго типизированные данные, накладывать ограничения на данные в таблицах, возможность отбора только части записей, поиск текста и т.д.

Сообщ. #904072
08.09.2006 15:11
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 20.12.2006 17:51
Сообщ.: 8, Visits: 14
Спасибо за развернутый ответ.
По поводу накладки данных не подумал...
Сообщ. #904073
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 5:17