|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Maxim Yemelyanov 2:5020/400 20 Nov 2003 17:48:58 To : Ivan Frolcov Subject : Re[5]: perl или c#? -------------------------------------------------------------------------------- Приветствую! 20 ноября 2003 г. в 12:41:12 Вы стучались к Mikhail Polykovsky: IF> Thu Nov 20 2003 13:04, Mikhail Polykovsky wrote to Maxim Yemelyanov: IF> MY>> Я вот часто использую $dbh->fetchrow_hashref("select * ....") на IF> MY>> большинстве таблиц, где при выборке записи нужна бОльшая часть полей. IF> MY>> Как от этого у скрипта может съехать крыша? :-) IF> MP> Ага, не подумал я. Привык выбирать данные arrayref-ом. Вот и говори IF> MP> после этого за всех... IF> MP> Разве что аргумент могу придумать - так читающему код видно, какую IF> MP> именно информацию ты получаешь из базы. Согласен. IF> Еще один аргумент - при * можно IF> 1)легко и ненавязчиво очень здорово увеличить объем передаваемых данных. IF> Пусть мы вытягиваем 10е3 записей, и нам надо 10 байт с каждой - ~0.1М, если IF> же там есть несколько varchar'ов байт в 100 в среднем каждый - объем IF> составляет уже 10Е3*300 = ~3E6, т.е. лишний расход трафика. Оно вроде на IF> стомегабитной сетке не так уж и критично, а вот по достаточно неторопливому IF> соединению уже очень даже. Я же написал не fetchall_hashref, а fetchrow_hashref. Поэтому не будет никакого 10e3 записей. Кроме того, такое я делаю с таблицами, у которых размер записи небольшой. Когда вырастает размер записи, перехожу на явное перечисление полей. IF> 2)при наличии явно указанных полей оптимизатор может решить вообще не лазить IF> до таблицы и вычитывать прямо из индекса - опять-таки ускорение. Для 1-3 полей я * не использую ;-) А вот если из 10 нужны 8, и большинство из них имеет интегральный тип, использую *, ибо проще и траффика _лишнего_ немного. В данном случае накланные расходы на траффик окупаются скоростью написания кода для работы с выбранными полями. А то и правда, придется каждый раз при изиенении таблицы заботиться, чтоб у скрипта крыша не ехала... Hа самом деле, опыта в перле и DBI в частности, у меня немного. Hе могу взвесить все за и против. Пока что пишу как пишу. С ростом experience буду писать более правильно и осознанно :) -- Удачи! Максим Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5.1 * Origin: Enigma Soft (2:5020/400) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/13126bbcf5bab.html, оценка из 5, голосов 10
|