Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 1
Регистрация: 27.12.2012
Сообщений: 123

Файлы или mysql

29.05.2016, 02:19. Показов 1696. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.
Заранее извиняюсь, пишу с телефона т.к. это вопросы пришли внезапно и очень меня тревожат.

Много читал информации в интернете, о том, где лучше хранить данные (в плане скорости), но ни кто толкового ответа не дал, хотя, были намеки что в файлах информация быстрее грузится. Так вот, вопросы: что же лучше, файлы или БД? И как скрипты будут справляться с файлами например, мегабайт в 50, если потребовать список через foreanch?

А вообще, это не главные вопросы. Самый важный: у меня сейчас информация хранится в файлах. Скриптом делается замена слова в строке файла. интересует вот что, если например 100 человек одновременно будут использовать функцию замены строки в одном и том же файле, то будут какието ошибки? И как это правильно реализовать, если такое возможно?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.05.2016, 02:19
Ответы с готовыми решениями:

Множества в PHP или MySQL
Привет! Хотелось бы сделать такую вещь: Есть Множество А и В получить С = А - А пересечение В получить D = B - А пересечение В ...

Бд или файлы?
Как лучше поступить. Количество запросов к сайту будет расти, необходимо как то снизить нагрузку. Первый вариант это сохранять для...

IIS+PHP+MySQL дурь или реальность?
У меня есть локальный комп, на нём пишу на АСП, возникла необходимость поставить ПХП - поставил. Работает замечательно. Поставил MySQL -...

17
349 / 262 / 65
Регистрация: 07.04.2014
Сообщений: 1,603
29.05.2016, 02:52
Цитата Сообщение от maksam07 Посмотреть сообщение
Скриптом делается замена слова в строке файла. интересует вот что, если например 100 человек одновременно будут использовать функцию замены строки в одном и том же файле, то будут какието ошибки?
Если нет блокировки, могут быть разные неожиданности.

А, вообще хранение информации в файлах устаревший подход. СУБД намного не только проще, но и эффективнее.
Исключением могут быть только конфигурационные файлы, в которых хранится информация для подключения к той же БД.

P.S. Раньше использование файлов ещё было оправдано особенностями хостинга. Но, в 2016 году хостинг с MySQL вполне можно себе позволить даже за бесплатно. Поэтому, в наши дни "файловые" движки сайтов практически утратили былую популярность.
0
1 / 1 / 1
Регистрация: 27.12.2012
Сообщений: 123
29.05.2016, 09:39  [ТС]
Цитата Сообщение от Streletz Посмотреть сообщение
А, вообще хранение информации в файлах устаревший подход. СУБД намного не только проще, но и эффективнее.
То, что проще, я наслышан. Я в мускульных функциях не разбираюсь, но там данные вроде как легче менять. Но меня все таки интересуют конкретные ответы. То бишь, я не понял, чем эффективнее? Неужто файлы намного хуже базы?
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
29.05.2016, 11:54
Во первых, по поводу файлов.
Даже конфигурационные файлы рекомендуется делать на PHP. А лучше настройки хранить в БД, потом скриптом выгружать и использовать.
Во вторых, и в плане скорости, и в плане безопасности, лучше использовать БД. И даже желательно не mysql, а какой нибудь sqli.
К файлам легко получить доступ. Но при работе с БД тоже надо смотреть, что бы небыло дыр для sql инъекций и т.д.

Добавлено через 3 минуты
Сейчас почти всегда всю информацию хранят в базах. А вы подумайте, что проще. Ломать голову над подгрузкой данных из файлов, писать тонны кода для оптимизации безопастности, или использовать уже готовое, где даже поиск информации одной строчкой. А учитывая, что язык sql очень прост, тут вообще говорить не о чем.
0
1 / 1 / 1
Регистрация: 27.12.2012
Сообщений: 123
29.05.2016, 12:19  [ТС]
Цитата Сообщение от jonikster Посмотреть сообщение
Во вторых, и в плане скорости, и в плане безопасности, лучше использовать БД.
Читал в интернете за скорость. Без кеширования в БД. На одних сайтах читал что разница небольшая, а на других (хабр), что инфа из файлов грузится в 2-3 раза быстрее, чем из бд.

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

Цитата Сообщение от jonikster Посмотреть сообщение
Ломать голову над подгрузкой данных из файлов
Дело в том, что я с файлами уже почти на ТЫ и мне не составит труда написать несколько строк обработки файла.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
29.05.2016, 12:25
написать не значит, что когда нибудь ничего не слетит.
У меня 2000 строк в цикле выгружаются и выводятся за маленькое количество времени.
0
349 / 262 / 65
Регистрация: 07.04.2014
Сообщений: 1,603
29.05.2016, 12:31
Лучший ответ Сообщение было отмечено maksam07 как решение

Решение

Цитата Сообщение от maksam07 Посмотреть сообщение
Неужто файлы намного хуже базы?
Помимо перечисленного выше, "файловая" архитектура создаёт проблему одновременного доступа. Что будет, если один и тот же файл будут редактировать хотя бы 2 человека? А, если их будет 22 или 1000?
Конечно, можно реализовать блокировки и т.д. Но, справиться с высокой нагрузкой движок всё равно не сможет.
Цитата Сообщение от maksam07 Посмотреть сообщение
Дело в том, что я с файлами уже почти на ТЫ и мне не составит труда написать несколько строк обработки файла.
Несколько строк здесь, несколько строк там и т.д. В конечном итоге всё это выливается в:
  • Неоправданное увеличение нагрузки на вычислительные ресурсы сервера;
  • Неоправданное усложнение сопровождения системы;
Цитата Сообщение от maksam07 Посмотреть сообщение
Я в мускульных функциях не разбираюсь
Стесняюсь спросить, поэтому Вы ищете аргументы в пользу "файловой" архитектуры? Подход к реализации необходимо выбирать под задачу, а не наоборот!
1
1 / 1 / 1
Регистрация: 27.12.2012
Сообщений: 123
29.05.2016, 12:35  [ТС]
Цитата Сообщение от Streletz Посмотреть сообщение
Стесняюсь спросить, поэтому Вы ищете аргументы в пользу "файловой" архитектуры? Подход к реализации необходимо выбирать под задачу, а не наоборот!
Нет, не поэтому. я уже думал переходить на мускуль, но потом начитавшись статей в интернете, определил, что данные из файлов грузятся быстрее, чем из базы. Поэтому я и считаю, что файлы лучше, в плане скорости. Но, как ты верно подметил, я не знаю что будет, когда файл будет редактировать сразу множество человек. Поэтому и прошу же описать все как можно детальнее. Хочется ведь нормально написать сайт, а не так, чтобы ломалось все
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
29.05.2016, 12:40
вам уже всё пояснили. берите бд и не заморачивайтесь.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
29.05.2016, 12:40
Цитата Сообщение от maksam07 Посмотреть сообщение
И как скрипты будут справляться с файлами например, мегабайт в 50, если потребовать список через foreanch?
Плохо
Цитата Сообщение от maksam07 Посмотреть сообщение
Много читал информации в интернете, о том, где лучше хранить данные (в плане скорости)
В оперативной памяти
0
349 / 262 / 65
Регистрация: 07.04.2014
Сообщений: 1,603
29.05.2016, 13:09
Лучший ответ Сообщение было отмечено maksam07 как решение

Решение

Цитата Сообщение от maksam07 Посмотреть сообщение
данные из файлов грузятся быстрее, чем из базы.
Если данных мало и нагрузки небольшие - возможно. Только пользователь это вряд ли заметит. Пока браузер получит данные, пока он их отобразит...
За то, когда при более-менее существенных объёмах данных и нагрузках всё начнёт тормозить, это станет очень даже заметно.
Цитата Сообщение от maksam07 Посмотреть сообщение
я не знаю что будет, когда файл будет редактировать сразу множество человек.
Будут конфликты со всеми вытекающими последствиями, включая потерю данных и уже упомянутые "тормоза". Остальное я уже объяснил в предыдущих постах.
Цитата Сообщение от maksam07 Посмотреть сообщение
начитавшись статей в интернете
Любые рекомендации нужно применять обдуманно. То, что хорошо в одной ситуации, может оказаться абсолютно неприемлемым в другой.
1
1 / 1 / 1
Регистрация: 27.12.2012
Сообщений: 123
29.05.2016, 13:14  [ТС]
Цитата Сообщение от Streletz Посмотреть сообщение
Любые рекомендации нужно применять обдуманно. То, что хорошо в одной ситуации, может оказаться абсолютно неприемлемым в другой.
Спасибо за более детальные разъяснения. Теперь я понял, что мой выбор - MYSQL, только одна проблема. Я не знаю как правильно создавать таблицы, какие значения нужно применять для столбцов, как указывать начальные значения, это так, самое главное. А дальше уже нужно будет делать отбор из этой базы. Сейчас пойду смотреть как подключается база и как с ней вообще работают, а вы, если, конечно, не сложно, напишите несколько функций, которые мне пригодятся в первую очередь, и по возможности, напишите, как сделать сортировку и вывести Н значений по списку из этой сортировки.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
29.05.2016, 13:19
Подключение к базе:
PHP
1
2
3
4
5
6
$host="localhost";
$base="basename";
$user="root";
$pass="";
$link=mysql_connect($host, $user, $pass);
mysql_select_db($base, $link)
А там смотрите справочник языка sql. Запрос пишется так:
PHP
1
$q=mysql_query("запрос")
на php.net и php.su есть функции для работы с бд.
0
1 / 1 / 1
Регистрация: 27.12.2012
Сообщений: 123
29.05.2016, 13:21  [ТС]
Цитата Сообщение от jonikster Посмотреть сообщение
mysql_connect
на php net написано что это расширение устарело и рекомендуют использовать mysqli_connect. Мне использовать mysqli_connect?
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
29.05.2016, 13:27
используйте mysql_connect, я лично разницы не вижу. там где другие бд может быть.
0
1 / 1 / 1
Регистрация: 27.12.2012
Сообщений: 123
29.05.2016, 13:36  [ТС]
Цитата Сообщение от jonikster Посмотреть сообщение
используйте mysql_connect, я лично разницы не вижу. там где другие бд может быть.
снова же почитал статейки, пишут что и скорость быстрее у mysqli_connect и функций побольше, так что наверное попробую на нем, по сути одно и то же почти, только более новое.
0
349 / 262 / 65
Регистрация: 07.04.2014
Сообщений: 1,603
29.05.2016, 13:41
Цитата Сообщение от maksam07 Посмотреть сообщение
Мне использовать mysqli_connect?
Используйте расширение MySQLi (упомянутая Вами функция как раз оттуда) или PDO::MySQL.
Старое расширение для MySQL deprecated (устарело), начиная с версии 5.5.0, а начиная с версии 7.0 (если верить документации) вообще исключено. Поэтому в новых проектах его лучше не использовать.
0
1 / 1 / 1
Регистрация: 27.12.2012
Сообщений: 123
29.05.2016, 16:19  [ТС]
Цитата Сообщение от Streletz Посмотреть сообщение
Старое расширение для MySQL deprecated (устарело)
я ж вот именно поэтому и решил уточнить, что лучше использовать. Щас какая-то проблема с phpmyadmin на хостинге, не пускает меня туда, а вообще буду делать на нем.

Добавлено через 1 минут
Кстати, пока все тут. Можно ли сделать сортировку по двум столбцам сразу? Сначала сортировка по типу (к примеру в столбце используется 2 значения type_1 и type_2), а затем сортировку по числу?

Ну и вывод типа:
type_1 5
type_1 4
type_1 2
type_1 0

type_2 4
type_2 2
type_2 1

Добавлено через 2 часа 30 минут
Разобрался.
PHP
1
select * from база WHERE колонка='значение' order by `колонка` desc
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.05.2016, 16:19
Помогаю со студенческими работами здесь

PHP кэширование: БД или файлы?
Собственно решил добавить на сайт кэширование, почитал статьи на эту тему, примерно все в теории проработал... Но возник вопрос: не лучше...

Кеширование, файлы или база
Как эффективнее сделать кеширование сложных страниц? Используя файловую систему веб-сервера, сохраняя в файлах готовые страницы или...

Выводить из БД или делать отдельные файлы
Всем привет! Возник вопрос такого блана: Будет сайт, на котором будут постоянно функционировать разные блоки с информацией. Так вот, как...

Новости на главной, лучше через БД или файлы
Возник такой вопрос, что лучше хранить каждую новость в отдельном файле или лучше в таблице?

нужны программисты с Москвы или Петербурга, с знаниями PHP, MYSQL, JAVA
нужны программисты с Москвы или Петербурга, с хорошим знаниями PHP, MYSQL, JAVA для Создания современной Социальной сети ( Оплата...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru