Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Чтение/редактирование огромного файла на php, оптимизация и минимизация затрат ресурса 
:(
    Опции темы
Fortop
Дата 5.3.2010, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Zmiuko, никаких проблем с чтением/записью файлов нет.

Есть проблемы отсутствия знаний.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Ипатьев
Дата 5.3.2010, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Цитата(Zmiuko @  5.3.2010,  16:30 Найти цитируемый пост)
Если в PHP программисты большое внимания уделили чтении-записи файла,

ну вот опять эта нехорошая черта, считать всех вокруг дураками.
при том, что эти средства к пхп отношения не имеют, а предоставлены операционной системой и - главное - этими же самыми средставми пользуются все остальные. и не жужжат.
а нашему непризнанному гению средства мешают 
PM MAIL   Вверх
IgorIV
Дата 5.3.2010, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 7.9.2009

Репутация: 2
Всего: 8



Цитата(Zmiuko @  5.3.2010,  09:16 Найти цитируемый пост)
$img = imagecreatefromstring(file_get__contents($filename));

Хм, если это делается на PHP, то в твоем случае задача решается похоже.
Код

DELETE FROM table_name WHERE id=x

PM MAIL   Вверх
Ипатьев
Дата 5.3.2010, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



IgorIV, формально ваши слоа можно оспорить.
библиотека, входящая в состав РНР и сторонняя программа (демон) - это, все-таки, разные вещи smile
на самом-то деле проблема совсем не в чистоте средств. 
PM MAIL   Вверх
IgorIV
Дата 5.3.2010, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 7.9.2009

Репутация: 2
Всего: 8



Блин, облажался smile
Это должно было выглядеть так:

Код

mysql_query ("DELETE FROM table_name WHERE id=x");


Ипатьев, формально? 
Ну да, формально на PHP можно что-то нарисовать, только для этого надо использовать сторонние модули. В данном случае ТС использовал GD. Так же формально можно редактировать и гигабайтные файлы, используя те же сторонние модули. В данном случае я использовал mysql. Пока не вижу кардинальных различий. Придратся к мелочам конечно можно ... smile
PM MAIL   Вверх
Ипатьев
Дата 5.3.2010, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



GD сложно считать "сторонним модулем"
imagecreatefromstring - это функция РНР
точно так же, как и mysql_query 
которая одна, сама по себе, работать не будет
PM MAIL   Вверх
awers
Дата 5.3.2010, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



Модератор: Давайте вернёмся к теме обсуждения.
PM MAIL WWW ICQ Skype   Вверх
gcc
Дата 5.3.2010, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: -1
Всего: 17



Zmiuko, 

если строка value фиксированная 1000 байт
Код

строка_55555555  value
строка_55555556  value
строка_55555557  value


если надо удалить строку строка_55555556 

нужно найти ее позицию, и нужно записать fwrite -1000 "с минус" и оно должно удалить с конца строки...
Код

строка_55555555  value
строка_55555556 
строка_55555557  value

оставить для индекса  строка_55555556 на всякий случай

Это сообщение отредактировал(а) gcc - 5.3.2010, 22:25
PM WWW ICQ Skype GTalk Jabber   Вверх
Fortop
Дата 5.3.2010, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



gcc, 
Я вот читаю периодически Ваши советы и просто не могу понять о чем они? И главное зачем?

Какой индекс строки? Что Вы хотите искать в файле с равноразмерными строками? Зачем это что-то искать?



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Ипатьев
Дата 5.3.2010, 22:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Fortop, чтобы удалить, например smile

PM MAIL   Вверх
gcc
Дата 5.3.2010, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: -1
Всего: 17



Fortop, разве строки могут быть не упорядоченными? (посмотрите первую страницу, у него по-моиму сортированные строки, он не говорит)
если создать файлик 1Гиг-40Гиг и если каждую строку сравнить с какой нибудь строкой? сколько это займет времени и сколько ресурсов? а если они будут упорядоченными, то будет легче и(или) на много быстрее...

Это сообщение отредактировал(а) gcc - 6.3.2010, 00:27
PM WWW ICQ Skype GTalk Jabber   Вверх
Fortop
Дата 6.3.2010, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(gcc @  5.3.2010,  21:50 Найти цитируемый пост)
 разве строки могут быть не упорядоченными?

Что значит неупорядоченные строки? Вот в моем сообщении сейчас строки упорядочены? Или нет?

Цитата(gcc @  5.3.2010,  21:50 Найти цитируемый пост)
посмотрите первую страницу, у него по-моиму сортированные строки

Цитату не сложно оттуда? А то мое зрение меня подводит.
Откуда вообще выплыла сортировка?

Цитата(gcc @  5.3.2010,  21:50 Найти цитируемый пост)
а если они будут упорядоченными, то будет легче и(или) на много быстрее...

Поздравляю, вы открыли для себя индексы. Теперь стоит еще подумать о том, что и по чем собираетесь сортировать.

Цитата(Ипатьев @  5.3.2010,  21:47 Найти цитируемый пост)
Fortop, чтобы удалить, например

Гм, а для редактирования не нужно знать что редактируешь?
Вставка/Удаление в любом случае потребуют полной перезаписи файла (если это файл, а не БД)

Но вопрос в другом.
ТС хотел обращаться к строке по ее номеру. И в случае фиксированной длины нахождение строки делается одним оператором fseek(номер строки * длина). Все.
Кстати формат DBF весьма познавателен в плане того как организовать отложенное физическое удаление, но это будет далеко не просто файл.

В случае строк произвольной длины, не имея метаинформации, мы будем бежать по всему файлу и считать строки - это без вариантов.





--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Ипатьев
Дата 6.3.2010, 09:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Цитата(Fortop @  6.3.2010,  02:15 Найти цитируемый пост)
а для редактирования не нужно знать что редактируешь?

об этом и речь. 
сначала узнать, что хочешь удалить
потом - найти
потом - удалить. 
без среднего пункта, по-моему, не получится  smile 

вообще, спорить о том, что имел в виду автор, или о значениях слова "поиск" (fseek, например, происходит от слова "искать") - занятие неблагодарное. я завязываю. 
PM MAIL   Вверх
Zmiuko
  Дата 6.3.2010, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


http://zmiuko.ru
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 8.10.2008

Репутация: 2
Всего: 2



Вот спорят-то smile 

Заранее имелось ввиду, что в файле строки не фиксированнной длины. Но склоняюсь к способу предложенному Fortopом, можно к концу каждой строки прибавить нулевые байты. Делаем лишнее действие, теряем время, и вообще можно поспорить о нужности, но редактировать способом Fortopа действительно легче.
PM MAIL WWW ICQ Skype Jabber   Вверх
Ипатьев
Дата 6.3.2010, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Как я уже ему говорил, этот способ в современных СУБД практически не применяется.
Потому что по номеру строки никто никогда к ней не обращается.
PM MAIL   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0564 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.