Контакты

Наибольший вклад в теги

Все теги (19)

Лучшие ответы пользователя

Все ответы (16)
  • Удаление всех пакетов, в имени которых есть xfce. How?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    sudo apt-get remove `dpkg -l | grep xfce | grep ^ii | awk '{print $2}'`
    dpkg -l - список всех пакетов
    grep xfce | grep ^ii - выбираем строки где есть "xfce" и которые начинаются с "ii"
    awk '{print $2}' - вычленяем только второй столбец (символ разделения пробел или табуляция)
    ну и собственно с помощью ` ` скармливаем этот список apt-get remove

    после этого можно ещё sudo apt-get autoremove запустить, подчистить ненужные установленные зависимости
    Ответ написан
    7 комментариев
  • Где производится изменение региональныых настроек консоли Linux?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    # locale
    # locale -a покажет все доступные локали
    ну и собственно меняйте нужные переменные в bashrc вашего пользователя (ну или какой у вас shell)

    Если есть вопросы, пиши в комментарии, отвечу.
    Ответ написан
    Комментировать
  • Почему Mysql кушает оперативку?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    Нормальное состояние, что mysql кушает оперативу. Не нужно складывать потребляемые мегабайты - это разделяемая память(ну или как-то так зовётся).
    В общем если показано 602 метра выделено, это значит, что для всех потоков, а не для каждого в отдельности.
    При этом нужно различать выделенную, зарезервированую, используемую память.
    sudo apt-get install mysqltop
    sudo mysqltop
    Ответ написан
    1 комментарий
  • Как узнатьсколько строк вернул запрос?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    Тут два пути. Первый получить с помощью SQL запроса - точно верный метод.
    И получить с помощью подсчёта строк полученных из запроса - не всегда верный метод(только при маленьком наборе данных).

    Сейчас объясню почему:
    Представьте, что у вас таблица на 100 000 000 000 строк.
    Вы делаете запрос и получаете в результате 10 000 000 000 строк.
    Допустим все эти строки вам нужны в программе (пользователь в форме на сайте глюканул и запросил все данные за последние 10 лет). Но вы сначала проверяете с помощью count(*) сколько вернулось строк.

    Очевидные плюсы - ваша программа не вылетит потому, что вы получаете всего одно значение, а не 10 000 000 000(И соответственно можете не допустить выгрузки такого большого количества данных которые подвесят вашу систему - что то типа if result > 10 000 then return "Слишком много данных"). Во вторых анализатор SQL вполне возможно обойдётся внутренней статистикой, а не проходом по индексам (или если совсем не повезёт фул тейбл сканом, что даже на миллионой таблице может сильно затормозить). В любом случае при использовании count мы не наблюдаем падения производительности, а в хорошем случае наблюдаем её прирост.

    А теперь представим, что вам нужно сделать отчет, вы знаете SQL запрос который вернёт нужные значения, но вы не знаете сколько строк он вернёт. RAM на вашей машине ограничен. Есть вариант, что программа сожрёт всю доступную память и уйдёт в своп(или упадёт если она 32'ух битная и приложению максимум выделяется 1,5 Гб) если заранее не проверить сколько данных мы запихнём в программу. Поэтому нужно перед выгрузкой данных проверить сколько у нас получится этих данных.

    По этому самый лучший вариант сначала "SELECT COUNT(*) FROM chel", а потом уже "SELECT <какие-то_столбцы> FROM chel".
    Это будет правильно. Ну и старайтесь избегать подзапросов там где без них можно обойтись.

    PS это облегчит жизнь и вам и DBA которые будут сопровождать вашу БД.
    С уважением админ как раз одной такой большой БД у которого программисты периодически пишут косячный SQL
    Ответ написан
    2 комментария
  • С чего начать обучение в области HiLoad, кластеризации, масштабируемости и т.д.?

    grumblik
    @grumblik
    В меру любопытен и разумно пытлив
    ruhighload.com
    Начни читать это.
    В нагруженных системах как в сексе, главное - пробовать много и по разному ;)
    Потом поймёшь, что тебе удобно и нравиться.
    Ответ написан
    Комментировать