Ответы пользователя по тегу MySQL
  • Просмотр dump mysql?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    это чисто примерный запрос, но т.к. я в sql полный профан, прошу объяснить что в нем неверного.

    Подскажите как можно снизить нагрузку и увеличить скорость запросов при условии оптимизированного кода и запросов.
    При условии оптимизированного кода и запросов нагрузка будет примерно никакой, так как у вас они судя по представленному explain ооочень далеки от "оптимизированных".
    Ответ написан
    Комментировать
  • Как скачать картинку, которая хранится в blob?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . $fileData[0]['file_name']); 
    header('Content-Transfer-Encoding: binary');
    Ответ написан
    1 комментарий
  • Как исправить ошибку: Too many connections в MySQL?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Нет смысла руками рвать соединение, при завершении скрипта коннект закроется автоматически. В вашем же случае весьма вероятна ситуация что коннект порвали зря и скрипт еще не отработал до конца.
    2) Онлайн порядка 500-1000 чел.Для запаса я бы поднял количество соединений до 1/4 онлайна. Зависит конечно от специфики сайта, но иногда их реально не хватает если сервер с активным взаимодействием с бэкендом.
    3) Для драйвера бд пишется враппер, не по тому что это модно или прям необходимо для работы, а как раз на такие случаи, в логику врапера пишется опциональное логирование запросов и сразу видно "кто где срал", сколько реально запросов бегает и что вообще происходит. Тогда можно что-то решать на уровне много/мало и куда что крутить. В частности, может оказаться что коннект происходит чаще чем вы думаете и вовсе не там где задумывалось...
    Ответ написан
  • В чем ошибка авторизации?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    START TRANSACTION;
    insert into `table` 
    (`number`) values (0);
    
    update `table` 
    set `number` = CONCAT("10", LAST_INSERT_ID()) 
    where `id` = LAST_INSERT_ID();
    COMMIT;
    Ответ написан
    Комментировать
  • Какой нужен запрос в базу MySQL для выборки всех детей вместе с родителями при структуре Nested Sets?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Да, так и должно быть, никто не может угадать заранее что и как вы будете запрашивать, по этому запрос ВСЕГДА возвращает массив, в случае если результат не пустой. Соответственно ваше значение будет в $res['name']; в случае построчного чтения результатов запроса, или $res[0]['name']; в случае получения массива целиком.
    Ответ написан
  • Что не так с SQL запросом?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    в мускуле не допускается использование таблиц из delete в подзапросах (емнип как и в других РБД).
    Как вариант - обернуть запрос в дополнительный селект, тем самым организовав временную таблицу для внутренней выборки.
    На будущее, для лучшего понимания проблем в запросе:
    1) Аккуратно форматируйте запрос, разбивая на строки каждую конструкцию из запроса.
    2) Следите за номером строки выдаваемом в ошибке запросов, так вам будет легче локализовать проблему.
    3) Крайне не желательно вывод ошибок осуществлять на русском, старайтесь использовать англоязычные инструменты. Это позволит быстрее находить ошибки по тексту, не путаясь в переводах.
    Ответ написан
    Комментировать
  • Почему не срабатывает фильтр в MySQL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    $sql = "SELECT * FROM `smirnov` WHERE visible='1' ORDER BY '$sorting' ";
    $sorting откуда у вас берется?
    Ответ написан
    5 комментариев
  • Искажается хеш из MySQL при проверке пароля - как поправить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Первый вардамп не проходит, во втором (где сам генерит и сам проверят ) - все нормально.
    Соль?

    Что мешает вывести во втором варианте дамп полученного хеша и посмотреть чем отличается от того что лежит в мускуле?
    Ответ написан
  • На сколько "дорога" операция обновления в MySQL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Идея на троечку с минусом.
    Во первых нарушает 3 нормальную форму,
    во вторых требует модификации сторонних "чистых" сущностей, размазывая логику
    в третьих - если у человека 10 диалогов - какой из них вы будете писать в МОЙ лист верхним?
    Ответ написан
  • Стратегия хранения заказов?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    ИМХО(во всяком случае я делаю так):
    есть таблица orders, с которой связана ordered_items, которая в свою очередь суть дубль таблицы товаров, кроме поля qty - количество. И в админке можно открыть заказ, посмотреть товары, поудалять если отказались етц...
    Ответ написан
  • Как выбрать все записи кроме 10 последних?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1) понятие последних в контексте хранения данных как бэ не совсем корректно без указания способа сортировки.
    2)
    селект * 
    фром самтэйбл
    вэа ид нот ин 
    (
    селект * фром
     (
    селект ид 
    фром самтэйбл
    ордер бай фиелд аск
    лимит 10
     ) эз тбл
    )
    ордер бай фиелд деск
    Ответ написан
    6 комментариев
  • Снова про кеширование запросов к БД, как сделать?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    первое: WHERE `title` LIKE '%".$query."%' - уберите полный вайлдкард, LIKE '".$query."%'будет работать быстрее и использовать индекс, в отличие от первого варианта. У вас же не нужно выбирать "Калининград" по "град".

    Второе - индексы подлиннее на текстовые поля, там где помещается в варчар - делайте варчар с индексом. Тогда скорее всего кеш не понадобится.
    Ответ написан
  • Какие габариты морально и физически правильно иметь базе данных?

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

    Далее добавил различные характеристики у user.
    Они нужны? Они относятся именно к юзеру? Значит все нормально.

    Затем еще добавил логи входов (ip, дата)
    Это отдельная таблица, отдельная сущность и отдельная логика. Нужна - значит добавляете.

    Боюсь логами забьется на сотни тысяч строк :)
    Пару миллионов строк для средней базы - вполне адекватный размер, если это не какой-то мусор, а что-то важное.
    Ответ написан
    1 комментарий
  • Как лучше обновить порядок строк при сортировке в mysql?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как выполнит одним запросом несколько действий MYSQL?
    Никак, это разные запросы с разными таблицами и разными задачами.

    для снижения нагрузки на базу данных.
    Неужели у вас уже более 1000 запросов в секунду и необходима срочная оптимизация?

    $db->query("UPDATE score SET score = score + $klik push = push + 1 WHERE vk_id = $ids LIMIT 1");
    $db->query("UPDATE score SET score = score + $klik push = push + 1 WHERE vk_id = $ids LIMIT 1");
    во первых - не хватает запятых между присваиваниями, во вторых SET score = score + $klik*2, push = push + 2 вот вам минус 1 запрос. В третьих - вроде используете pdo, а переменные вставляете без prepared statements...

    Все это можно:
    1) обернуть в транзакцию - профит от этого - целостность выполнения операций(на скорости особо не отразится).
    2) Запустить одним скриптом, разделив запросы семиколоном ";" (профита практически никакого)
    Ответ написан
    5 комментариев
  • On duplicate key update?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Нет, прямой возможности нет, то есть конструкция языка такого не предусматривает.
    Что можно сделать:
    1) Реализовать триггер на инсерт во вторую таблицу всего что добавляется в первую таблицу
    2) Сторед процедура со схожим функционалом
    взято тут: https://stackoverflow.com/questions/11940506/mysql...
    Ответ написан
    Комментировать
  • Как сформировать запрос к MySQL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Нужно получить resources_id, resources_name,
    Все или по какому то критерию?
    select 
    `resources_id`,
    `resources_name` 
    from `resources`

    количество записей в таблице statistics относящиеся к resources (/resource/ ид ресурса)

    select 
    count(*) 
    from `statistics` 
    where `statistics_url` = '/resource/resources_id'

    Запросы верные. Или есть еще условия какие-то?
    Ответ написан