|
|
|
|
|
для: deimand
(10.03.2012 в 02:41)
| | >Ну почему упадет скорость, если вынести запросы, как строки, в отдельные файлы?
Потому, что скоро выясниться, что очень много похожих запросов, которые можно объединить и использовать одни и те же переменные. Потом вы уже не будете знать как часто дергается тот или иной запрос, так как они будут вырваны из контекста, а следовательно переписать участок кода будет сложно, так как затронув один запрос, вы можете потревожить код в совершенно другом месте. Нельзя будет работать локально, вернее можно, но сложнее.
>Ну почему html шаблоны не тормозят, ведь они представлены для интерпретатора такими же
>строками как и запросы.
Почему тормозят, если они не скомпилированы заранее... но дело ведь еще в том, что SQL - это не строки, это команды, их нужно постоянно анализировать, причем в контексте кода, имея в виду, как часто этот участок кода дергается... в этом плане мне ваш подход кажется не очень удобным, особенно, если речь идет об очень большой базе данных и очень сильном SQL-разработчике. В этом случае лучше даже без модели на уровне серверного языка обходиться, реализуя модель средствами SQL. Еще нужно иметь в виду, что речь не идет обо всех случаях и проектах, где-то одно удобно, где-то другое. Да, не всегда справедливо, то что я пишу, но и это имеет место быть, поэтому рано объявлять такой способ универсальным. | |
|
|
|
|
|
|
|
для: deimand
(10.03.2012 в 02:41)
| | Вот не верю и все.
а вы сделайте над собой усилие и поверьте, точнее сначала поймите о чем речь, а уж потом поверте
ООП программирование само по себе более ресурсоемкое, чем процедурное
представьте себе что имеете ненужный кирпич который нужно отнести на мусорку (запрос на удаление) при процедурном стиле вы просто берете кирпич и несете, при ООП подходе вы берете кирпич кладете его в ведро и несете на мусорку, в принципе нормально весом и габаритами ведра можно пренебречь. А теперь финт ушами, вам надо выкинуть пять кирпичей, думаете положить все в одно ведро? фигушки, каждый кирпич вы кладете в отдельное ведро и уже несете 5 ведер. поднять в принципе можно, а вот пройти в двери уже неудобно
а теперь прикиньте ситуацию для десяти кирпичей... вам уже и мускулов побольше нужно и двери пошире | |
|
|
|
|
|
|
|
для: Роккер Руслан
(09.03.2012 в 11:29)
| | Я недавно предлагал подобное решение, оно правда спорное, но возможно вас заинтересует почитать.
http://softtime.ru/forum/read.php?id_forum=3&id_theme=83821&page=1 | |
|
|
|
|
|
|
|
для: cheops
(09.03.2012 в 14:52)
| | Вот не верю и все.
Ну почему упадет скорость, если вынести запросы, как строки, в отдельные файлы?
Ну почему html шаблоны не тормозят, ведь они представлены для интерпретатора такими же строками как и запросы. Может я что-то неправильно понимаю, просто мы не первый раз с вами эту тему обсуждаем, и вы не в первый раз пишите одно и то же, а понять я этого пока ни как не могу. Я использую описанный подход и у меня все просто летает. Может хостинг попался удачный, кстати мой друг на хостинг часто жалуется, на jino если быть точным, но меня обходят те проблемы, которые вы описываете. | |
|
|
|
|
|
|
|
для: Роккер Руслан
(09.03.2012 в 11:29)
| | Хотите разделить коды и запросы? Для начала откажитесь от практики создания запросов непосредственно в mysql_query() - вынесите их в отдельную переменную. Когда возникает ошибка, удобно сразу вывести запрос на отладку. Когда он у вас в единственном экземпляре прямо в mysql_query() - его приходится дублировать, при дублировании неизбежные расхождения и ошибки. Когда у вас будет mysql_query($query); вам уже будет легче перейти к реализации идеи отделения запросов от кода.
Только имейте в виду, что помещение всех запросов в кучу - не самая блестящая идея. Лучше так организовать приложение, что с базой данных и запросами у вас бы работала малая часть кода - модель, следующий логический уровень уже не обращался бы непосредственно к базе данных, а обращался бы к модели, таких уровней можно построить довольно много - зависит от ваших потребностей, сейчас модно использовать три: модель, контроллер, представление.
Идея не просто в фанатическом выделении SQL-запросов из кода, а в том, чтобы базу данных и большую часть кода можно было править независимо: чтобы изменения в базе данных и в модели автоматически распространялись на весь остальной код и не требовали переписывания запросов (с неизбежными ошибками) в миллионе мест сразу.
Да и просто отделять код от запросов в надежде, что этим самым повыситься скорость и увеличиться безопасность - наивно. Вероятнее всего скорость упадет, а безопасность снизится, если вы не ставили обратные цели, не понимали как и добиться и не следили всю дорогу за ними. Само собой не происходит вообще ничего. Если вы хотите добиться скорости - отделение кода от запросов вообще не самая удачная идея - вы просто не сможете их потом толком оптимизировать. С безопасностью уже лучше, но нужно четко понимать, как вы её хотите добиться. | |
|
|
|
|
|
|
|
для: Роккер Руслан
(09.03.2012 в 11:39)
| | согласен, тогда учитесь составлять и грамотно оформлять запросы, и никакая зараза вам не будет страшна
использование printf тоже уменьшает шансы на взлом
ну а в целом страшен не сам запрос, а неграмотная обработка переменных | |
|
|
|
|
|
|
|
для: Valick
(09.03.2012 в 11:38)
| | несерьёзно( | |
|
|
|
|
|
|
|
для: Роккер Руслан
(09.03.2012 в 11:29)
| | нет дыма без огня
хотите отказаться от запросов, откажитесь от базы данных | |
|
|
|
|
|
|
| Добрый день... Краткая история:
Я всегда на сайтах создавал запросы примерно в таком виде:
mysql_query("
SELECT id, comment, name
FROM comment
")
|
Но недавно услышал что можно как то сделать, чтоб в коде вообще небыло запросов, написанно было что это снижает риск взлома(инъекций), повышает скорость работы и вообще хорошо)... Но как это сделать незнаю... да и сформулировать не могу толком... Подскажите есть что то подобное? | |
|
|
|
|