- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте.
Есть самописный скрипт, он работает на php MySQL
Так вот, когда размер базы данных становиться более 20 мб, сайт начинает сильно подтормаживать.
По суди 20 мб это не так много для базы данных, есть сайта и с гигабайтными базами.
Вопрос, почему так происходит? Как можно оптимизировать работы базы данных?
По сути в базе большой размер имеет одна таблица, типа post в wordpress, может ее разбить на несколько таблиц. Но однако это не сильно изменит ситуацию ведь когда база будет скажем 40 мб, все вернется.
Подскажите в какую сторону смотреть?
Проставка индексов.
Смотрите какие запросы выполняет скрипт - потом в phpMyadmin сами выполняете эти запросы добавив в начало EXPLAIN и анализируете.
Как правильно заметил Леня - скорее всего нужно добавить индекс на поля по которым идет выборка.
20 мб это вообще ни о чем, на таких объемах я видел тормоза только когда вообще не было индексов (включая первичного).
20 мб это вообще ни о чем, на таких объемах я видел тормоза только когда вообще не было индексов (включая первичного).
Насколько я понял, индексов нет вообще.
Подскажите, а простановка индексов отразиться на структуре базы? Я имею ввиду, придется наполнять сначала сайт?
придется наполнять сначала сайт?
нет не придётся
....................
WP сам расставляет индексы в таблицах при установке. Ни чего там трогать не нужно.
Что такое WP ?
WP - Вордпрес
Создание индексов не затрагивает данные. (ничего не сотрется)
Что такое WP ?
Извините, к топу отношение не имеет. Я невнимательно прочитал. Советовали правильно, расставьте индексы.
При большом количестве записей запрос типа "SELECT COUNT(`id`)" тормозит в таблицах InnoDB. Если нет другого способа, можно сменить тип таблицы на MyISAM.
onep, это только в том случае, когда в запросе нет условия, т.е. когда определяется полное количество записей в таблице. В остальном "тормозит" точно так же. Кстати, полное количество записей можно кэшировать триггерами и использовать для выборки более "легкий" запрос, чем SELECT COUNT(*) ;)
можно сменить тип таблицы на MyISAM.
Не нужно вообще использовать в 2к20 MyISAM. А если тормозит SELECT COUNT(*), то надо подумать, нужно ли вообще вам точное количество строк, если да, то зачем? Для пагинации, или просто юзеру показать количество товаров в категории. Если для пагинации, то нужно юзать курсор и next-next пагинацию. Если для того, чтобы показать примерное количество строк в таблице, брать аппроксимизированные данные из таблицы information_schema.