Форум программистов, компьютерный форум, киберфорум
PHP: Фреймворки
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 2
Регистрация: 02.09.2013
Сообщений: 237
1

Преимущества ActiveRecord перед обычным MySQL

24.07.2015, 15:45. Просмотров 1558. Ответов 20
Метки нет (Все метки)


Ситуация такая.
Делаю проект в yii и для работы с базой использую ActiveRecord. Cделал загрузку xls файла в базу данных. И попробовал протестировать ее на больших xls файлах.
Также есть реализация этой же загрузки с помощью обычного php + mysql. Её я так же тестировал на этих же xls файлах.
Я конечно понимал что ActiveRecord будет медленнее чем mysql, но даже не думал что настолько медленнее.
В связи с этим у меня возник вопрос стоит ли вообще делать загрузку с помощью ActiveRecord или все таки у ActiveRecord есть какие то важные преимущества?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2015, 15:45
Ответы с готовыми решениями:

Преимущества фрейморвка перед написанием кода с нуля
Подскажите какое преимущества фрейморвка, от того что я буду сам писать все с ноля. Понятное дело...

В чем преимущества Java перед php?
Если продублировал тему, прощу прощенья. Но нового и актуального за последние пару лет ничего не...

Есть ли в MySql преимущества перед файлами?
Я планирую начать разрабатывать социальную сеть узкой направленности. Сейчас проектирование дошло...

ActiveRecord треверсинг вверх и вниз по модели MySQL
Предположим, что есть модель: И есть результат запроса ActiveRecord который закеширован в...

20
Эксперт PHP
4382 / 3265 / 1061
Регистрация: 06.01.2011
Сообщений: 9,432
25.07.2015, 09:55 2
Цитата Сообщение от mihon1 Посмотреть сообщение
но даже не думал что настолько медленнее
Наверное Вы в цикле писали данные в базу. Т.е. в цикле заполняли модель ActiveRecord и тут же выполняли запрос на вставку.
Нужно сначала заполнить, а после цикла разом всё вставить. Не спрашивайте, как это сделать — посмотрите документацию Yii.
0
812 / 795 / 201
Регистрация: 21.09.2012
Сообщений: 2,653
25.07.2015, 10:06 3
Для постоянных запросов, таких как выгрузка, лучше использовать DAO
0
507 / 357 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
29.07.2015, 19:17 4
Цитата Сообщение от Dolphin Посмотреть сообщение
Для постоянных запросов, таких как выгрузка, лучше использовать DAO
DAO лучше использовать в крупных проектах, не требовательных к скорости разработки. В простых - AR.
0
Эксперт PHP
932 / 690 / 235
Регистрация: 01.02.2015
Сообщений: 1,848
29.07.2015, 23:34 5
Цитата Сообщение от OnYourLips Посмотреть сообщение
не требовательных к скорости разработки.
именно так и для Т. С. может стоит попробовать load data
1
0 / 0 / 2
Регистрация: 02.09.2013
Сообщений: 237
02.08.2015, 14:24  [ТС] 6
Хорошо. А что тогда делать с валидацией данных?
0
61 / 61 / 12
Регистрация: 11.12.2009
Сообщений: 248
02.08.2015, 23:36 7
mihon1, вот вы и описали одно из преимуществ AR.
Валидацию придется делать своими силами.
0
13 / 49 / 3
Регистрация: 26.12.2009
Сообщений: 403
14.08.2015, 23:23 8
Ого.
Валидацию данных делает АР. Не знал.

В своих проектах использую что-то вроде ДАО, ну то есть все запросы идут через АПИ.

Преимуществ АР не вижу.

На одной прошлой работе с Yii использовали полностью написанные от руки запросы.
На другой не помню, но были какие-то костыли с моделями под Йишными моделями.
На текущей с ДБ не работал пока. (Все работает по АПИ, как это называется, сервис-ориентированная архитектура или как).

Преимуществ АР не вижу вообще.
0
507 / 357 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
14.08.2015, 23:54 9
Цитата Сообщение от Madrid Посмотреть сообщение
Преимуществ АР не вижу вообще.
Пока не станешь хотя бы джуниором - не увидишь. С опытом придет.
0
13 / 49 / 3
Регистрация: 26.12.2009
Сообщений: 403
15.08.2015, 00:06 10
Ну напишите.

Я уже далеко не джуниор.
По моим другим сообщениям этого не видно?

Пока только услывал о валидации.
Но я считаю, что это не забота слоя БД.
Да и как оно автоматом провалидирует. Оно опирается только на метаинформацию о таблице или как?
Как оно провалидирует имейл или юрл илиномер телефона?
0
507 / 357 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
15.08.2015, 00:26 11
Цитата Сообщение от Madrid Посмотреть сообщение
Я уже далеко не джуниор.
Не "уже", а "пока еще не".

Будешь читать документацию - найдешь ответ на свои вопросы.
0
13 / 49 / 3
Регистрация: 26.12.2009
Сообщений: 403
15.08.2015, 00:40 12
Цитата Сообщение от OnYourLips Посмотреть сообщение
Не "уже", а "пока еще не".
Будешь читать документацию - найдешь ответ на свои вопросы.
А-ха-ха..
Недоджуниор учит жизни
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16826 / 6704 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.08.2015, 20:31 13
преимущество AR в удобстве работы. Все подробно описано на https://ru.wikipedia.org/wiki/ActiveRecord
Если вам удобнее писать запросы самому - что ж, ваше право. Но многим удобнее более автоматизированные средства. AR удобнее уже хотя бы большей человекопонятностью (имхо).
0
13 / 49 / 3
Регистрация: 26.12.2009
Сообщений: 403
15.08.2015, 20:55 14
Цитата Сообщение от KOPOJI Посмотреть сообщение
Все подробно описано на https://ru.wikipedia.org/wiki/ActiveRecord
Там ничего не описано.

Цитата Сообщение от KOPOJI Посмотреть сообщение
Если вам удобнее писать запросы самому - что ж, ваше право.
Я ж такого не писал.
0
Эксперт PHP
932 / 690 / 235
Регистрация: 01.02.2015
Сообщений: 1,848
15.08.2015, 21:10 15
Цитата Сообщение от KOPOJI Посмотреть сообщение
Но многим удобнее более автоматизированные средства
Для небольших задач и не более. Когда пишется запрос с нескольким Join, Union подзапросами, Group By ... и описанием всех полей и индексов в запросе размером больше страницы то все ORM можно только в одно место засунуть.
Только ручками с учетом специфики используемого драйвера можно получить желаемый результат
При этом каждый запрос стоит проверять (EXPLAIN - mysql) на его скорость и использование им индексов, стоит также думать об оптимизации его производительности
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16826 / 6704 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.08.2015, 21:45 16
Poznakomlus, ошибаетесь, в нормальных фреймворках это реализовано на должном уровне - взять хотя бы тот же RoR. Да, я не утверждал, что AR - панацея от всего и ее и только ее надо использовать всегда, все зависит от требуемого. Но в большинстве своем AR хватает.
0
Эксперт PHP
932 / 690 / 235
Регистрация: 01.02.2015
Сообщений: 1,848
15.08.2015, 22:01 17
Интересно в разделе php вспоминать про Ruby
Кроме Redmine в жизни от него не приходилось использовать(нет времени).
Может не стоит в этом распылятся ведь есть еще Python, c++, c# ...
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16826 / 6704 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.08.2015, 22:06 18
Poznakomlus, насколько я понимаю, в данный момент обсуждается не сам PHP и его конкретная реализация в PHP, а паттерн Active Record. Поэтому не вижу ничего плохого в том, чтобы указать на некоторую ограниченность суждения, сославшись на реализацию на других языках программирования. Не нравится сноска на рельсы - смотрите Laravel, там вроде тоже понасдирали ото всюду.
0
2 / 1 / 0
Регистрация: 18.08.2015
Сообщений: 54
25.08.2015, 14:52 19
Что лучше спички или зажигалка?
по моему это риторический вопрос ))
0
507 / 357 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
25.08.2015, 15:16 20
Цитата Сообщение от Grihanoff Посмотреть сообщение
Что лучше спички или зажигалка?
по моему это риторический вопрос ))
Это было бы правильной аналогией, если бы сравнивались ActiveRecord и DataMapper.

К текущей ситуации подходит сравнение спичек и переноса открытого огня лучиной.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.08.2015, 15:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Преимущества 12.10 перед 12.04
Нестабильности в 10ке не заметил... А в плане производительности как???

34 преимущества кирпича перед пистолетом
Взял где-то с простор интернета. 1. Кирпич дешев. 2. Кирпич доступен. 3. Hа кирпич не нужно...

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

В чем преимущества BufferedWriter перед FileWriter?
P.S не бейте


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.