| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > оптимизация запроса MySql+PHP |
| Автор: bazzjr 19.4.2009, 12:13 | ||
| Всем прива. Есть такая таблица: name varchar(40) default NULL, type varchar(40) default NULL, index varchar(11) default NULL, Есть такой скриптик:
Проблема в том, что в таблице 180 000 тыс записей, и выборка и построение происходит исключительно медленно! Что можно предпринять, для того чтобы уменьшить время выборки из базы??? |
| Автор: bars80080 19.4.2009, 21:25 |
| это всё из-за лефтов, лайков и неизвестного количества запросов в цикле. жалко сервер, умирает наверное в мучениях какой смысл в этом коде? |
| Автор: bazzjr 20.4.2009, 01:44 | ||
Смысл прост... Позволить юзеру выбрать из базы нужную ему слово(запись) используя поле input для ввода искомых букв. Если есть мысли о том как избежать LEFT LIKE, с удовольствием выслушаю |
| Автор: Kirsan 20.4.2009, 07:07 |
| Для начала, как Вам уже сказали, нужно вызов функции mysql_query() вынести из цикла while. Спроектируйте запрос так, чтобы получить все нужные данные одной выборкой. |
| Автор: bazzjr 20.4.2009, 09:38 | ||||||
а остальное это некая дополнительная выборка, с помощью которой мы строим список. Пример: Искомое слово "Лабинск" на выходе будет результат. Лабинск Краснодарский край, Лабинский район Т.е. в данный момент у меня используеться всего одна таблица, и в ней все данные имеют уникальные клочи "INDEX" Думаю скорей всего прийдется разбивать на другие таблицы, чтобы снизиить кол-во выборки и улучшить скорость. |
| Автор: bazzjr 21.4.2009, 14:54 | ||
Люди помогите, если не сложно дайте хотя бы небольшой намек как это сделать, или если можно код??? |