|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
|
proger |
|
|||
Опытный Профиль Группа: Участник Сообщений: 400 Регистрация: 10.10.2004 Репутация: нет Всего: 1 |
Здравствуйте, я работаю с большим количеством данных из базы mysql для построения отчетов. По опыту заметил, что щапросами получать данные для отчета медленее, чем взять нужные данные, записать в массив и потом их обрабатывать.
Запросы все оптимизированные. А нет ли лучшего способа чем считывать все в массив а потом проводить вычисления? |
|||
|
||||
Nigel |
|
|||
познаю мир Профиль Группа: Участник Сообщений: 515 Регистрация: 20.11.2007 Репутация: нет Всего: 19 |
Иногда лучше воспользоваться серверным языком для обработки данных, чем бд. Запросы к базе по своей сути должны быть простыми, чтобы они выполнялись быстро. Поэтому имеет смысл посмотреть в сторону создания
дополнительных таблиц для агрегирования данных. |
|||
|
||||
WolfAlone |
|
|||
В экстазе Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: нет Всего: 5 |
Есть ещё 1 вариант, который можно попробовать, как мне кажется. Есть так называемые "NoSQL DB", возможно, стоит попробовать такую БД. Одна из таких БД: http://ru.wikipedia.org/wiki/MongoDB . Не могу сказать точно, так как я не специалист по "Не реляционным БД", но многие сходятся во мнении, что такие БД несколько производительнее MySQL в некоторых случаях. Возможно, Ваш случай, как раз 1 из таких.
Так же, можно попробовать РСУБД отличную отличную от MySQL например, Firebird или PostgreSQL. Ещё можно попробовать оптимизировать не только запросы к MySQL но и сам MySQL. Прошу заметить, что описанные выше действия, лишь теория (моя). Возможно, в Вашем конкретном случае прироста производительности не будет... Более детальные рекомендации, я смогу Вам дать, если Вы уточните, о каком объёме данных идёт речь, что Вы с ними делаете, откуда они загружаются, пример запроса и пр. подробности. -------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
|||
|
||||
proger |
|
|||
Опытный Профиль Группа: Участник Сообщений: 400 Регистрация: 10.10.2004 Репутация: нет Всего: 1 |
Всем огромное спасибо!
|
|||
|
||||
deperoff |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 10.12.2011 Репутация: нет Всего: нет |
Как вариант-ещё есть мемкэш.
|
|||
|
||||
vfz4z |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 3.6.2010 Репутация: нет Всего: нет |
да, мемкэш реально помогает при больших нагрузках, когда оптимизировать уже нечего)
|
|||
|
||||
MuToGeN |
|
|||
Лесник Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: 4 Всего: 32 |
Многие, кстати, нынче пользуют ту же mongo вместо мемкеша, тупо как хранилище всей фигни в виде ключ-значение.
MongoDB поможет в том случае, если выборка идет по одной коллекции (наиболее близкое по смыслу понятие к "таблице" в РСУБД). Никаких JOIN-ов там не будет, всё это придется делать вручную. А так, в целом - отличная вещь для обработки больших объемов информации. С Firebird не пересекался, но вот постгрес однозначно медленнее мускуля на больших объемах данных. А по части непосредственно мускуля мне в своё время пригодилось вот это: http://dev.mysql.com/doc/refman/5.1/en/opt...the-server.html -------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
skyboy |
|
|||
неОпытный Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
для ускорения и упрощения агрегирования информации есть такой механизм, как OLAP. некоторые СУБД его реализуют(например, MS SQL или Oracle)
вдогонку, кое-что нашел для mysql |
|||
|
||||
Agnosticus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 2.3.2012 Где: Москва Репутация: нет Всего: нет |
В отличие от MongoDB, мемкеш все в ОЗУ хранит, поэтому скорость отдачи максимальная
|
|||
|
||||
Stark |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 18.2.2008 Репутация: нет Всего: 1 |
большой объм даних это сколько?
можно примери структури таблиц и типы запросов? тогда может будут более конкретные советы. |
|||
|
||||
krundetz |
|
|||
Вечный странник Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
||||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |