Задать вопрос
Ответы пользователя по тегу MySQL
  • Как отобразить две строки в одну?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    distinct + concat, правда полей будет только 2
    Ответ написан
    Комментировать
  • Как правильно вытащить из двух таблиц mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    таблица guests - whoinvited должен хранить id приглашающего, тогда можно сделать джоин по этим таблицам по ид и хуинвайтед, но в любом случае - в одной строке вы не получите ВСЕХ приглашенных отдельными полями, либо это будут строки дублирующиеся по таблице юзерс и отличающиеся только по инвайтед, либо можно сделать груп бай хуинвайтед и конкат на гестнэйм, и будет 1 поле со строковым значением всех имен.
    Ответ написан
  • Как разделить вывод у разных пользователей в php и MySql?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вопрос вообще типа "как тут ехать?".
    Создаёт пользователь ключ: licensekey(Пример ключа, не таблицы), и нужно сделать так, чтобы другие пользователи не видели этого ключа
    Не показывай им его.

    А админ мог все ключи видеть.
    А админу показывай.

    Такое возможно в php?
    Ну, возможно что возможно... пока все еще не очень понятно что тебе нужно...

    Т.к я начинающий, я ещё не знаю как это реализовать(
    Что "это"?
    Ответ написан
  • Как ускорить работу скрипта?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1)
    $stmt = $mysql->query("SELECT `value` FROM counter WHERE `id` = 1");
       $data = (int)$stmt->fetchColumn();
       $data++;
       $query = "UPDATE `counter` SET `value` = :value WHERE `id` = :id";
       $params = [
         ":id" => 1,
         ":value" => $data
       ];
    меняем на
    $query = "UPDATE `counter` SET `value` = `value`+1 WHERE `id` = :id";
    и сразу избавляемся от лишнего запроса. На будущее переписываем как инсерт он дупликэйт апдейт.
    2) dataType: 'text',меняем на dataType: 'json', и никакие парсе не нужно, получаем сразу объект.
    3) Смотрим вкладку нетворк, строчку где выполнился аякс, смотрим ОТВЕТ СЕРВЕРА. Много думаем.
    Ответ написан
  • В чём ошибка в коде?

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

    Во вторых - у таблицы которую вы уже использовали, наверняка уже существовал id=2, и она это "помнит", то что вы не можете создать такой ключ который уже использовался гарантирует консистентность данных.

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

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

    Как реализовать так, чтобы пользователь не получал ошибку, а просто ждал ответа от сервера.
    Какой ответ? Нужно посчитать и отдать результат или достаточно чтобы ответ был "все ок"?

    В ходе исследования появились мысли, что Nginx подойдет для этой задачи лучше чем Apache.
    В целом - да, нжинкс быстрее и легче, но есть нюансы. Кроме того, гораздо важнее режим работы пыха, фпм - маст хэв. Но при вашей задаче имхо это вообще не важно.

    Можно ли на сервере с такими данными реализовать эту задачу чтобы сервер и СУБД не отваливались?
    Вообще не вижу проблем, Даже если 100 человек одновременно кликнет - особой беды не будет. Во первых, на каждого будет выделен отдельный трит пхп, во вторых - такие мелкие записи вообще ниачем, мускуль их может херачить сотнями в секунду.

    В целом: Решение с транзакциями вообще спорное, и не понятно зачем здесь воткнуто (интересно ваше решение - откудо оно и зачем? И в догонку - почему они так редко используются, а в вашем случае "очень нужны"?).

    Как можно это синтетически протестировать?
    apache jmeter или yandex tank.

    Вывод
    Скорее всего переживания ваши ниачем, но если вы по секрету расскажете нам что за уникальную вундервафлю вы строите, возможно ответ будет точнее и осмысленнее.
    Ответ написан
    3 комментария
  • Как сделать сортировку таблицы mysql?

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

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Не надо спорить, для ФИНАНСОВЫХ операций только дечимал. Если вы не в курсе или не занимались этим - не надо давать плохих советов. В некоторых бд есть специальный вид MONEY, но он не всегда подходит, так как имеет обычно ограниченное количество знаков после запятой, как в данном случае, биткоин или операции с большим "хвостом" как на форексе.

    UPD: Надеюсь никому не надо объяснять почему флоат не подходит?
    Ответ написан
    Комментировать
  • Имеет ли смысл оптимизировать частые большие элементарные запросы?

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

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    TL;DR: переписывайте базу пока не поздно. Приводите в 3 нормальную форму и будет вам "щастие".

    1) Хранение данных по которым идет поиск в таком виде - это сразу расписаться в своей проф. непригодности, никому не показывайте эту стыдобу.

    2) Разнесите данные нормально по таблицам, не думайте что вы прям "выкрутились" захерачив все в строку и у вас все в шоколаде. Нифига, теперь у вас по этому полю будут кошмарно тормозные запросы, так как самые медленные операции - это лайк и регексп. Тем более по полю с переменной длинной и без нормальных индексов. И все это вместо суперскоростного индекса по интежер полю.

    3) Кроме остальных проблем - теперь вместо просто апдейта поля вам сначала надо его считать, распарсить и только потом обновлять, чтобы не потерять информацию, то есть вы часть стандартной логики бд переносите в код, где ему не место.

    4) ну и на одну из проблем вы уже напоролись - поиск по нечетким данным даст нечеткий результат.
    Ответ написан
    8 комментариев
  • Сортировка mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1) драйвер mysql_ уже не используется. Деприкэйтед с 5.х и окончательно выпилен в 7.х, используйте mysqli_ или PDO.
    2)
    давно мучаюсь с этим кодом
    Просто не надо мучиться, надо читать документацию, в ней все есть, смотрите ORDER BY выражения.
    3) Так писать запросы не желательно, у вас (скорее всего) невалидированые строки напрямую попадают в запрос, это прямой путь к инъекции. Используйте подготовленные выражения.
    Ответ написан
    1 комментарий
  • Как исправить ошибку в базе данных (MODIFY `ID` int(11) NOT NULL)?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    there can be only one auto column and it must be defined as a key - что конкретно не понятно в этой фразе?
    Ответ написан
  • Как сохранить 500 млн документов в Mysql или Postgresql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    500 млн документов в Mysql или Postgresql... Мне нужно их индексировать через Sphinx

    However, Sphinx does not depend on nor require any specific database to function.
    Если у вас не стоит задача работать с УЖЕ СУЩЕСТВУЮЩЕЙ базой, база сфинксу как таковая не нужна, у него свои индексы и свой движок, хотя и с базами она тоже умеет.

    PS: sphinxsearch.com/forum/view.html?id=11964
    Ответ написан
    Комментировать
  • Помощь с полнотекстовым запросов mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    product_part_nubmer у вас какого типа вообще?
    Ответ написан
  • Как организовать sql запрос в таблицу базы данных с помощью php?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    PDO?
    Вообще как бы у вас там торчат уши от DLE, вы бы в тегах указали что цмс. Смотрите доки по ДЛЕ, как работать с запросами.
    Ответ написан
  • Как лучше спроектировать базу данных?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Все по классике:
    1) 3 нормальная форма
    2) join
    Ответ написан
    3 комментария