а что значит много запросов? много раз подряд выполняется один и тот же select с разными where ?
нет, я о другом : обычно в результате должны быть или поля указанные в группировке или агрегирующие функции.
select * from group by user_name ; не должно пойти
Dreammaker, ну во первых, синтаксически нужно писать не where, а having.
во вторых очень сомнительный трюк. в субд отличных от mysql такое невозможно.
Наверное нет. Очень сомнительная экономия на символах в программе получится.
тогда без distinct никак
вы бы лучше разбили на две таблицы - (ид,имя,город) и отношения(ид,район)
в этом случае и выбирать было бы проще.
то что у вас 20 полей возможно показывает что вы не знакомы с нормализацией. для многих запросов(таких как ваш) нормализация автоматически ускоряет выполнение.
некоторые ссылки скажут больше тысячи слов
http://ru.wikipedia.org/wiki/%D0%91%D0%B5%D1%81%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2%D0%B0%D1%8F_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0%D1%86%D0%B8%D1%8F
мне не совсем понятно, но похоже вам достаточно дописать в конце запроса " limit 1 ". это просто останавливает выполнение как только найдется одна запись.
Не так давно на небрендовых материнках появилась поддержка педальной интеловской технологии intel vpro. ребут там точно работает. дополнительных затрат на оборудование вообще никаких. возьмите на заметку.
а как "мы" узнаем про Tower ? Пофигу, а вам же неудобно их обслуживать будет.
Kpd, да это я пальцем в небо. размер не помеха. вот если по совокупности параметров mysql запросит больше 512мб памяти только тогда упадет. нужно смотреть в логи mysql для выяснения точной причины
все-таки repair table должен был помочь. но, видимо, у вас ос или mysql так настроен что падает в середине процесса. вот это точно лучше починить.
хинт : freebsd это такая ос, где из вредности ее разработчиков по-умолчанию процесс не может больше 512мб данных употребить.