Если критичен именно этот запрос — пара дополнительных полей firstLetter & strLength и составной индекс по ним решат вопрос. Для сопровождения актуальности — пару триггеров.
Да, на эти пару параметров тоже обратил внимание. Их мониторить надо, меняются ли со временем. Можно badblocks прогнать, посмотреть, что изменится после чтения всей поверхности диска. Пока вроде бы не смертельны.
PS: как вам вообще удалось на паре дисков, различающихся возрастом на 9 месяцев, получить синхронные количество старт-стопов?
RTree только myisam, инвертированный индекс — так он не перестаёт быть B-tree от этого (если я, конечно, думаю про то же, что и вы, т.к. ман по словосочетанию Inverted index ничего не знает).
BTree и остаётся только.
Конвертируйте в innodb. Остальное значения не имеет, конфиг — тем более. MyISAM использует на любой чих табличную блокировку. Даже не говоря об отсутствии транзакционности, под конкурирующее чтение-запись не подходит.
Ставите себе какую-нибудь задачу, реализовываете. В процессе вы уже знаете, где у вас пробелы знаний. Соответственно этому подбираете книгу и читаете. Если пробела не нашли и задача решена — выбираете любую книгу из пожеланий «обязательно к прочтения» и читаете. Например: habrahabr.ru/post/135897/
Точного списка знаний быть не может. Программирование охватывает слишком много областей, чтобы познать все. Пробуйте всё подряд, что понравилось — углубляйтесь, останавливайтесь и закапывайтесь с головой в практику в этой области или же ищите дальше.
Мне нравится веб-программирование и я не понимаю, какие могут быть трудности в базе данных на пару десятков миллионов записей. Но я совершенно не знаю какое-нибудь там winAPI.
Вы тоже из Питера, так что я гарантирую, найти отличную работу программистом без корочки вуза — проблемы не составляет. Отправляйте резюме, сходите на пару собеседований — это очень быстро поможет если не найти работу, то понять, в каких областях пробелы.
Увлекаясь этим с 9-го класса вы уже точно должны знать одну или несколько областей, где вам нравится.
> Но без корочки
Ошибаетесь. Нормальные компании на корочки не смотрят, здесь имеет значение только опыт.
> и некоторых знаний, которые дают в универе
И вы в это верите? Что там будет хоть что-то, чего нельзя узнать самостоятельно? Люди, интересующиеся темой, на парах рассказывают преподавателям об этой теме, а не наоборот.
Зачем передавать большие объёмы в сервер очереди? Там должен быть таск: возьми (опционально, у того-то сервера) такой-то файлик, сделай с ним тот-то (опционально, кинь результат туда-то).
Gearman, PgQ, RabbitMQ и прочие.
> Чтобы это был не 127.0.0.1 нужен другой юзер с открытым доступом из вне
Это может быть unix-сокет.
MySQL авторизует по 3 параметрам, а не двум — логин, пароль, хост. Соответственно, может быть несколько пользователей root одновременно.
> В биосе. и в CPUCool монитор напряжения (+12, +3.3, +5) всюду показывает слегка больше номинала.
На эти цифры можно вообще не смотреть. Напряжения нужно мерить мультиметром, софтовые измерялки безбожно врут.
Я имею в виду в том виде, где доступ к биосу есть — переставить настройки, выключить, добавить память. Но gigabyte… Не доводилось как-то с ними работать, там вроде бы как-то хитро выставляются ручные настройки.
Это так, между делом, напрямую к вопросу не относится. Из соображений совместимости в SPD ставят только 1.8В и настройки, на которых память в этом случае стабильна — скорей всего стандартные CL5, а то и 667мгц частота вдогонку. Вручную выставляется номинальные для плашек.
Попробуйте всё-таки сбросить биос в дефолт принудительно — подчас помогает, даже если тот всегда так и работал.
Потом запустите на 3 планках, и попробуйте немного понизить частоту FSB. Можно ещё на несколько ступеней поднять напряжение на NB (северный мост), там контроллер памяти, может, ему питания перестало хватать.
А вообще — можно на 3гб и остаться. Всё равно 32-битная система больше 3,3Гб не оперирует, а 64-битка — больше занимает, то а то и выходит, в среднем.
Мне способы неизвестны, кроме как избегать объёмных подмасок регулярок.
Учитывая, что баг давний и воспроизводится много лет — пересборка не поможет.
Если достаточно вернуть ошибку на некорректные данные — сделайте iconv('utf8','utf8', $sInput) и перехватите его notice. Ещё стоит поглядеть функции utf8_encode / utf8_decode
Это не баг, а строго по документации: www.php.net/manual/ru/language.operators.comparison.php