Автор Тема: что быстрее MySQL или файлы?  (Прочитано 5999 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nicki

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 107
  • +0/-0
  • 0
    • Просмотр профиля
    • http://cprazdnikom.ru
что быстрее MySQL или файлы?
« : 26 Марта 2006, 13:09:57 »
Вопрос и по мускулю и по файлам, поэьтому постю сюда. Меня интерисует вопрос скорости выполнения операции выборки. Ситуация такая. Скрипт поддерживает несколько языков - инглишь, русиш, франсиш и т.д.. Возникает необходимость добавлять новые записи на этих нескольких языках (список категорий, разделов сайта, статей и т.д.). Есть два варианта: БД и файлы. Файлы реализовать проще, НО никто не захочет лизить по lang-файлам и добавлять новые элементы в массив сообщениями. В тоже время меня мучают сомнения что загрузка и подключение  массива из файла будет быстрее выборки из БД.
Вот мне и хотелось бы узнать  интерисует что будет быстрее и насколько. Допустив что нужно подключить\\загрузить несколько файлов\\запросов:
- общие сообщения для всех модулей
- сообщения конкретного модуля

таблица примерно такая
id          int unsigned NOT NULL auto_increment,
languageId  int unsigned NOT NULL default \'1\',
moduleId    int unsigned NOT NULL default \'1\',
langMark    varchar(32) NOT NULL default \'\',
message     text NOT NULL default \'\',
PRIMARY KEY (id),
UNIQUE _languageId_langMark (languageId,langMark)

файл
$msg[\'repeateSendAct\'] = \'\';
$msg[\'regNotConfirmed\'] = \'\';
... и т.д.
Поздравления с днем Святого Валентина

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
что быстрее MySQL или файлы?
« Ответ #1 : 26 Марта 2006, 13:16:29 »
ИМХО Mysql будет работать быстрее за исключением случая если в конечном итоге придется непосредственно работать с бинарными файлами.
Цитировать
Nicki:
[off]Безработный[/off]

Оффлайн Nicki

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 107
  • +0/-0
  • 0
    • Просмотр профиля
    • http://cprazdnikom.ru
что быстрее MySQL или файлы?
« Ответ #2 : 26 Марта 2006, 13:22:57 »
т.е. в моем случае мускуль все таки предпочтительнее по скорости, да? Даже если учитывать что в файле подключается уже готовый массив, который просто array_merge() с уже ранее подключенным массивом сообщений, а с мускулем еще надо разобрать возвращенный ресурс, сохранив все в массив.
Поздравления с днем Святого Валентина

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
что быстрее MySQL или файлы?
« Ответ #3 : 26 Марта 2006, 14:41:18 »
Nicki
погоди, с помощу чего ты формируешь массив в файл ?
[off]Безработный[/off]

Оффлайн Nicki

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 107
  • +0/-0
  • 0
    • Просмотр профиля
    • http://cprazdnikom.ru
что быстрее MySQL или файлы?
« Ответ #4 : 26 Марта 2006, 16:12:09 »
пока что руками добавляю во все файлы Lang строки типа

$msg[\'mark1\'] = \'Message text\';
$msg[\'mark2\'] = \'Message text 2\';

но заказчику такая головная боль не нужна, поэтому придется делать с базой. А если файлом все таки быстрее работает, чем запросом, то придется ухитрится как то ... написать парсер из бд в файлы и их потом подключать, чтоб и волки были сыты и овцы целы :)) но опять же гимор.
Поздравления с днем Святого Валентина

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
что быстрее MySQL или файлы?
« Ответ #5 : 26 Марта 2006, 18:50:31 »
Nicki
Я бы наверное все данные хранил в БД. Таким образом мне бы не пришлось беспокоится на счет скорости выполнения скрипта.

[OFF]или же мне просто не приходилось хранить данные в файлах. Зачем хранить данные в файлах если для этого есть такой мощный интсрумент как БД[/OFF]
[off]Безработный[/off]

Оффлайн Nicki

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 107
  • +0/-0
  • 0
    • Просмотр профиля
    • http://cprazdnikom.ru
что быстрее MySQL или файлы?
« Ответ #6 : 26 Марта 2006, 18:57:05 »
делюсь своими тестами. В общем тест такой:
- выполняется 1 секунду
- для файлов идет загрузка 4 файлов содержащим одним массив из строк который после инклюда прикрепляется к уже загруженным массивам из других файлов, т.е. все сваливаем в кучу $messages = $messages + $msg;
- для бд в каждой итерации происходил запуск 4 запросов к тем же данным что и в файлах, но уже занесенным в бд, и сохранение всех выборок в кучу. while ($arr = $result->FetchRow()) $messages[$arr[0]] = $arr[1];
- в начале всех итераций массив $messages сбрасывался
- итоговый массив в $messages конце каждой итерации насчитывал около 100 элементов
- для доступа к бд использовалась ADODB
- файлы инклюдились инструкцией include

средние результаты:
fileTest took 340 iterations/sec
dbTest took 180 iterations/sec

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

Оффлайн Nicki

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 107
  • +0/-0
  • 0
    • Просмотр профиля
    • http://cprazdnikom.ru
что быстрее MySQL или файлы?
« Ответ #7 : 26 Марта 2006, 19:01:52 »
for_i_0
Иногда проще хранить в файлах, т.к. легко можно отредактировать любую его часть просто в текстовом редакторе, а вообще согласен, что бд необходимо применять везде где только возможно.
Поздравления с днем Святого Валентина

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
что быстрее MySQL или файлы?
« Ответ #8 : 26 Марта 2006, 20:48:21 »
Цитировать
Nicki:
легко можно отредактировать любую его часть

тоже самое можно сказать о CMS. Ведь практически любое написания веб-приложений начинается именно с администрационной части.
[off]Безработный[/off]

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28