Как ускорить запрос к базе данных

программирование php MySQL базы данных sql

Здравствуйте, имеется запрос к бд mysql
$sql="select `vn`,`v` from `trs` where `pci`='one' and `tr`='two' and `sid`='700' limit 1";

в бд примерно 70 000 записей. Запрос работает медленно. Можно ли его как-нибудь оптимизировать?
vn, v - varchar,
pci, tr - varchar
sid - int
Ответы:
1) нужно видеть структуру таблицы и индексы
2) sid - int, так почему в запросе он текстовый - преобразование требует время
3) в клаузе where sid=700 лучше поставить на первое место. сравнение Int выполняется намного быстрее, а следующее сравнение будет обрабатывать меньшее количество записей
4) На каждом поле в клаузе where должен быть индекс
Быстрей некуда...
если вы выводите только одно значение а вот если вы обходите все значения тогда надо понять как вы их пользуете
- можно выводить постранично или ....
drimer дело в том, что выборка одного последнего элемента будет длится не сильно дольше чем выборка последней сотни. Т. к. пока бд пробежится по строчкам и найдет - пройдет много времени.
С целью избежать данного рода нагрузок, создаются параллельные таблицы, или ограничивается количество страниц разумным числом.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.