|
|
|
новичок
      
участник
Last Login: 20.12.2006 17:51
Сообщ.: 8,
Visits: 14
|
|
Есть выбор - использовать MySQL или просто запись в текстовый файл.
Мне нужно выбрать то, что меньше съест системных ресурсов.
Пример 1.
Мне нужно записать один байт данных.
Я могу открыть файл (скриптом PHP), положить в него букву и закрыть.
Или соединиться с MySQL и добавить запись... Что меньше съест ресурсов?
Пример 2.
Нужно считать цифру из БД, увеличить на одну и сохранить.
Можно взять файл который будет БД, считать из него цифру, увеличить на одну и перезаписать этот файл.
Или соединиться с MySQL, считать строчку, обновить запись... Что меньше съест ресурсов?
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
Работа с файлом безусловно менее требовательная к ресурсам операция по сравнению с БД, но у БД есть свои достоинства. К примеру, возможность блокировки данных на время их изменения. В примере, номер 2 при одновременной работы с файлом двух пользователей операция увеличения может привести к неправильному результату. Допустим, что в файле хранится число 3 и два пользователя одновременно захотят увеличить это значение на 1.- пользователь №1 открывает файл и читает оттуда 3
- пользователь №2 открывает файл и читает оттуда 3
- пользователь №1 выполняет увеличение 3+1=4
- пользователь №2 выполняет увеличение 3+1=4
- пользователь №2 записывает цифру 4
- пользователь №1 записывает цифру 4
В итоге две операции изменения слились в одну. В БД есть встроенные механизмы контроля таких ситуаций. При работы с файлами можно сделать защиту от таких ситуаций, но ее придется писать самому и проверять. В БД же это уже есть "бесплатно". Поэтому прежде чем выбрать файл или Mysql разберись будут ли у тебя операции одновременного доступа. Есть и другие критерии, которые следует учесть. БД позволяет хранить строго типизированные данные, накладывать ограничения на данные в таблицах, возможность отбора только части записей, поиск текста и т.д.
|
|
|
|
|
новичок
      
участник
Last Login: 20.12.2006 17:51
Сообщ.: 8,
Visits: 14
|
|
Спасибо за развернутый ответ.
По поводу накладки данных не подумал...
|
|
|
|