- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вебсайт, имеются несколько больших БД по 10~20 миллионов записей. Использую связку php-mysql
В таком случае если нужно сделать выборку SELECT хотябы из одной базы то это занимает до нескольких минут.
Поставил Sphinx, с поиском все замечательно, вот только нет live update, а мне нужно чтобы когда вноситься новая информация или изменяется старая то это сразу было в работе. То есть как на тут к примеру когда я создаю новую тему или новое сообщение я сразу могу его/ее видеть, а у сфинса нужно обновлять индексы для этого.
То есть как имея миллионы записей на том же серче все так быстро индексируется?
Подскажите пожалуйста инструменты, способы работы с большими БД. То есть мне нужно сдлеать максимальную скорость выборки SELECT (INSERT, UPDATE тоже нужно, но второстепенно), причем чтобы ДБ был live, то есть если вноситься информация то она сразу может быть использована. Может быть другие БД использовать не mysql…
И еще, можно ли хотябы примерно сказать зависимость обработки подобных запросов от наличия ОЗУ. То есть грубо говоря 2ГБ RAM — 2 минуты, 4ГБ RAM — 1 минута. Интересует хотябы примерная зависимость.
Qest, точно так же как и с маленькими, только думать придется чаще.
И на самом деле обновление информации есть даже в sphinx. Но не обязательно нужно бросаться реализовывать это, когда можно продумать структуру обычной бд mysql.
10-20кк - это не большая база.
Скорее трабл в архитектуре базы и приложения.
select на минуту...
Qest, была база правда малюсенькая по сравнению с Вашей всего 600к записей. Тормозила когда переписал в mysql. Оказалось не было первичных ключей. Тоесть mysql как объяснили в подобной ситуации при селекте сначала высчитывает первичные ключи а потом уже выборку делает. Может у Вас так?
Поставил Sphinx, с поиском все замечательно, вот только нет live update, а мне нужно чтобы когда вноситься новая информация или изменяется старая то это сразу было в работе. То есть как на тут к примеру когда я создаю новую тему или новое сообщение я сразу могу его/ее видеть, а у сфинса нужно обновлять индексы для этого.
Хранить время построения индексов у сфинкса и дополнительно к уже имеющемуся поиску, в _базе_ искать данные, которые сохранены после.
Если в этой выборке нет километровых JOIN-ов без индексов и поиск по индексу, несколько млн записей вполне нормально отрабатывают. И да.. у MySQL настройки "из коробки"? К примеру, индексы в памяти умещаются? В любом случае - включать slow_log, про EXPLAIN вроде Вы в курсе..
"подобных" чему? Вообще, корректнее говорить про ресурсы, выделенные именно для MySQL.. и именно для нужд запроса.. Скорее всего, нужные для запроса индексы уместятся и в 1Гб ))
p.s. Ну не.. конечно, если получится всю базу в памяти разместить - конечно, будет быстрее
innoDB + праймари кеи + мускул на отдельную машину