ну вот смотри, у тебя индексы только для этой таблицы занимают 66 метров
а всего базе под буфер отведено 128 метров.
судя по всему базе тупо не хватает оперативки. надо выделить под буфер больше памяти
в общем случае под innodb_buffer_pool_size выделяют 80% оперативки, имеющейся на сервере БД
ну и надо убрать дублирующиеся индексы
я только не понял, откуда взялось 11 лимонов строк, если у тебя тут только 500 000
128 метров под индексы - это какой-то адов мазохизм.
кто вам базу данных настраивал?
зачем индексы дублируются? места под них и так нету, а ты их еще и удваиваешь.
показывай
show table status from имя_базы where Name='main';
И этот запрос отрабатывает пол-секунды?
показывай
show index from main;
show table status from имя_базы where Name=main;
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
HTML - это определенным образом структурированная информация
если мы в нее добавляем данные неизвестного формата, то их надо соответствующим образом оформлять
чтобы случайно не испортить исходное форматирование.
в данном случае ты выводишь данные в HTML. Значит надо форматировать все символы, которые могут оказаться служебными в HTML.
Именно это я и имел в виду, когда говорил "не бояться, считая чем-то запредельно сложным" :)
Поверь, для того чтобы выполнить элементарный запрос, не нужен "целый фреймворк". Если понимать, как оно работает, то там две строчки. Кода меньше, чем с твоим "перед мною приведенной строкой добавить".
А про MVC ты мощно выступил, уважаю. Правильно, если не знаешь что сказать - вали все умные слова, какие знаешь, авось какое-нибудь подойдёт :)))
Вот это и надо писать в ответе, сразу. А не в комментариях, огрызаясь на сделанное замечание.
Отвечать на вопросы тоже надо уметь. Надо осознавать ответственность за код, написанный на публичном ресурсе. Потому что из-за таких ответов, написанных левой пяткой, кругом до сих пор так никто и не умеет толком писать код, позоря себя такими вот ответами.
Вот ты думаешь, что две функции, которые ты тут привел, достаточны для ответа. Но это опять очень узкое мышление. Да, 20 лет назад такой код считался нормальным. А сейчас нет. Потому что представляет собой частный случай, а не универсальное решение. И тупо скопированный в свою программу приведет к инъекции.
Поэтому, отвечая на вопрос, надо давать универсальное решение, а не частное. Но для этого его во-первых, надо знать, а во-вторых - не бояться, считая чем-то запредельно сложным.
Приведенный тобой код будет работать только с кучей оговорок - тогда применять, тогда не применять, если не применять, то тогда применять другое. Ты никогда эту инструкцию толком не напишешь, а отвечающий не поймет, и все равно налажает.
Именно поэтому умные люди давно уже придумали нормальный способ - не "подготавливать" данные по-всякому, с риском напутать и налажать на каждом этапе, а тупо отправлять их отдельно от запроса. Такой способ гарантирует от ошибок и инъекций, и должен использоваться при ответах.