Ответы пользователя по тегу MySQL
  • (php+mysql) Как сделать масовые update данных в таблице?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Транзакции, пачками по 300-500-1000, надо подбирать лучшее значение перебором, другого вроде ничего не придумали пока. И что за апдейты которые на 200к занимают час? Нормальный запрос выполняется 0,001 сек, на 1000 уйдет секунда, значит на 60к нужно минуту времени. 150к максимум 3 минуты. Возможно что с базой что-то не так, проверьте скорость работы update, сделайте explain, посмотрите какие индексы нужно добавить.
    Ответ написан
    1 комментарий
  • Почему не срабатывает условие проверки результирующего массива на NULL?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    А чего вы ожидаете? False будет в случае неудачного запроса, у вас же запрос прошел нормально, вернуло 0 строк. Учитесь читать расшифровки, думайте головой.
    Ответ написан
    Комментировать
  • Импорт в Mysql из csv. Как сделать?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    phpMyAdmin позволяет задать разделители и переносы / окончания строк вручную
    Ответ написан
    Комментировать
  • Что делать если Sending Data занимает 99% времени запроса?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    IS NULL неиндексируемый запрос, вся проблема в нем. По этому время работы выборки будет одинаковым для любого количества строк, т.к. перебор идет "в лоб", и до конца таблицы. Думайте как обойти, в идеале заменить на индексируемое поле, например int.
    Ответ написан
    Комментировать
  • Как структурировать базу данных MYSQL на мультиязычном сайте?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    После того как попробовал всякие методы, в своей разработке пришел к выводу который сейчас опишу. В моей стране 2 языка являются основными, распределение нечеткое т.к. многие свободно говорят на 2 языках, но предпочитают какой-то один, "родной". Тем не менее русскоговорящих порядка 30-40%. При создании платформы встал вопрос о мультиязычности контента, т.к. 90% местных заказчиков естественно хотят иметь минимум 2 языка. В результате организовалось нечто следующее:
    В базе есть таблицы:
    language{
      id (int 2),
      name (varchar 200),
      shortname (varchar 3),
      prefix (varchar 2),
      default (int 1)
    };
    localization{
      id (int 6)
      alias (varchar 200)
      value (blob)
      langid
    };

    Все материалы помимо id имеют groupid и languageid, что собсно позволяет объединять их по материалам и языкам. В таблице принадлежностей (например картинок) всё хранится используя groupid, соответственно товар всегда будет иметь одинаковые картинки для всех языков. С информационными материалами сделали проще - картинки загружаются админом в аплоадную папку и прикрепляются в пост по прямому прописанному линку, т.е.
    в базе не хранятся, не очень красиво, зато избавляет от проблем привязки изображений с разным лексическим контекстом. Таблица localization для перевода статического контента, во вьюшке прописывается хелпер вывода языкового алиаса <?=Locale::get("some_alias")?>
    Ответ написан
    Комментировать
  • Какие ошибки в алгоритме скрипта? Парсинг контента (Simple HTML Dom)?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Зачем здесь эти простыни? Какая проблема в принципе? Не верный sql на выходе? Значит проблема в самом тексте запросов? Какую ошибку выдает при импорте? Эта ошибка есть в гугле? Какая структура таблицы? Что не совпадает?
    Ответьте (себе) на эти вопросы, думаю проблема будет очевидна. Пока кроме куска кода, который вы выложили неизвестно зачем(он ведь рабочий?), в вопросе нет ни байта полезной информации по теме.
    Если ответы на эти вопросы не помогут с решением вам - выложите их для нас, возможно тогда будет понятно что делать.

    создает файл базы SQL
    , видимо создает текстовый файл с SQL запросами? Файл базы - совсем другое.

    как правильно сформулировать SQL запрос на обновление данных, видать в синтаксисе запроса ошибка

    Я так понимаю что вы просто импортируете sql файлик через phpmyadmin? В результате выбивает с ошибкой? Какая ошибка?
    Ответ написан
  • Как понять работу sql-запроса?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Возможно у вас есть непонимание основ работы бд. Например
    SELECT `group_id` FROM `vkmembers` ORDER BY `members` DESC LIMIT 0,20

    возможно по вашему мнению быстренько выбирает 20 последних записей, что на самом деле не так.

    PS: попробуй уменьшить query_cache хотя бы до 16 мб, а то и вовсе отключить.
    Ответ написан
  • Вставка нескольких записей. Именованные плейсхолдеры?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    можно, но задолбетесь, делайте без именованных, через ?, проще и быстрее.
    Ответ написан
  • Стотит ли использовать БД для файлов?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Я тут мимо проходил ), смотрю - Александр Седов в сайте разбирается, ну я подхожу - смотрю - а он как раз базу вынул, смотрит, большая, говорит какая! Может не нужна такая большая, может выкинуть ее вообще?!
    Я его спрашиваю - а что внутри? Мож ценное что?
    А он так - да нафига она вообще? Что внутри не смотрел, но не может быть чтобы такая большая и нужна была! Прям жо... сердцем чую - лишняя деталь, к гадалке не ходи!
    :))
    По делу:
    Мож все таки глянешь перед тем как рефакторить, мож не зря она там? Вряд ли в ней хранится что -то простое типа файлов, больше похоже на историю или списки воспроизведения.
    Ответ написан
    Комментировать
  • Как составить запрос на выборку в Mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    А это обязательно так костыльно делать? Не проще получить массив идентификаторов и программно отделить что не выбралось? Не надо пользоваться молотком где можно пинцетом. В смысле получается задача ради задачи, а не ради правильного решения.
    Ответ написан
    Комментировать
  • Как объединить запрос?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Не нужно ничего объединять, джоин таблицы на себя - плохая практика и медленные запросы. Нет смысла, никакого выигрыша по скорости не будет, еще и логика запроса через пятую точку. Сделайте 2 запроса и объединяйте данные в пхп, тогда все будет работать быстро и логично. Используйте KISS.
    Ответ написан
    Комментировать
  • Как в InnoDB сделать так, чтоб после удаления строки она реально удалялась с диска?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Если не критично хранение после ресета - редис.
    Ответ написан
  • Как сделать одну связь с двумя моделями Yii2?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Есть модель, у неё есть поле,

    поле для чего?
    коды и в той и в той одинаковые встречаются.

    коды чего?
    Если данные идентичны - то какой смысл их держать в разных таблицах. Если "коды одинаковые" и все остальное совпадает - возможно это одно и то же? Или неотличимо одно от другого. Вывод - добавить уникальный индекс, объеденить таблицы и научиться правильно формулировать вопросы. Если решение не подходит - то только последний пункт.
    Ответ написан
  • Можно ли использовать зарезервированные слова в названии полей?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Как и было написано - это не рекомендуется, однако будет работать, необходимо только при запросе обрамлять имя поля в такие `` кавычки(клавиша перед еденичкой). Но лучше переименовать в make или синоним, или с префиксом.
    Ответ написан
    Комментировать
  • Как сделать выборку по 2-м одинаковым полям?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    UPD2: Кароче так: Из долгих диалогов - задача обойти всю базу, выбрать по 1 юзеру, затем выбрать все одинаковые пары юзер - бренд, сделать с ними шаманство, записать обратно статус 1.
    1) Получаем возможные пары юзер - машина, запоминаем в массив.
    SELECT distinct
      `name`, `car_brand` 
    FROM 
      `drivers`
    where `status` = 0

    2) далее форичем перебираем значения и подставляем в запрос:
    SELECT *
    FROM   `drivers`
    where   `name` = '$name' and `car_brand`= '$brand' and `status` = 0

    3) получаем выборку, делаем магию, делаем апдейт по ид.
    Ответ написан
  • Нужно чтобы при появлении новой записи в базе она выводилась в новом html блоке на странице...?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ваш вопрос конечно весьма запутан и туманен, что вы хотите можно лишь угадывать.
    Если вы хотите при добавлении записи обратно получить все записи включая только что добавленную, и вывести их блоками - нажмите 1 :)
    Если вы хотите получать на текущей страничке(без перезагрузки) еще один хтмл блок, в который выведется последняя добавленная в бд запись нажмите 2 :)
    Ответ написан
    2 комментария
  • Как оптимизировать сервер под тяжелые скрипты с небольшим количеством пользователей?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    А есть возможность переписать серверные скрипты на, допустим, С, или чем то компилируемом, питоне например, или это не входит в проект? Это серьезно ускорило бы работу системы.
    Диски - если есть возможность и еще не сделали - поставить ssd, это реальный прирост даст при работе с файлами.
    Если есть работа со значениями key->value ставьте редис или мемкеш и оптимизируйте под них скрипты.
    Остальное без конкретных деталей сложно сказать, бо скрипты с такими расчетами сложно невидя оптимизировать.
    Ответ написан
    5 комментариев
  • Как вывести нужные значения?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Если страницы строятся по типу деревьев - от 0 - корень и далее с вложенностью - для каждой группы добавьте дополнительный ид группы, если дерево страниц не будет больше 100 нод допустим, то выбираем все ноды с нужным груп_ид, а далее средствами пыха делаем перебор и строим цепочку.
    Ответ написан
    Комментировать
  • Как правильно делать выборку со счетчиками?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Собсно в чем проблема? У вас виснет сервер, не хватает соединений к базе? Пользователи прут стремительным домкратом и сервер не успевает отдавать незакешенные запросы?
    Если нет - какие проблемы? Так есть и так должно быть, выборка из таблиц с актуальными данными всегда будет происходить из базы напрямую, если джоин не включает 4 таблицы по овер 10 мильёнов записей - все будет работать быстро, ну, если структура верная. А если нет - смотрите как оптимизировать базы, кеш здесь вообще как бы ниочем.
    Ответ написан
    2 комментария
  • Как оптимально организовать хранение и редактирование настроек сайта?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Список, по кнопочке переходим на редактор, во избежание. В крайнем случае, если лень каждое редактировать в отдельном вью - отдельные формы на каждую строку записи.
    Ответ написан
    Комментировать