Оптимизация скорости работы БД

269
06 сентября 2017, 15:25

Всем привет, есть таблица translate на базе mysql с переводом в размере 700 тыс записей, делаю в цикле перевод каждое слово:

foreach($res->data->skuModel as $skuModel){
    getTranslate($skuModel->propName);
}

при каждом цикле идет запрос к базе:

function getTranslate($text) {
   $this->db->query("SELECT * FROM `translate` WHERE zh='$text' LIMIT 1");
   foreach ($query->rows as $result) {
     return $result['translate'];
   }
}

И вот такой грязный код тормозить страницу:

выполнения за 5 секунд это еще нормально. Если пройтись по циклу 100 раз то вот тогда начинается ад. Не правильный подход написания кода не реально тормозить страницу вообще страница должна сгенерироваться за 0,5 сек но тут у меня такой кошмар даже не знаю что мне делать.

Вопрос: Как мне оптимизировать код.

Answer 1

Проблема решена как сказали @mike и @Ипатьев использовал индекс заменил тип из text на varchar(1000) подключил индекс и вуаля в 100 000 раз быстрее.

READ ALSO
Загрузка картинки через ajax

Загрузка картинки через ajax

Друзья, после загрузки картинки на сервер, картинка не открываетсяТ

271
Поиск STYLE через HTML DOM parser

Поиск STYLE через HTML DOM parser

Вот сам кусок кода:

242
множественный UPDATE

множественный UPDATE

Как за один запрос обновить базу? Мой код почему то не работает (

251
Как прочитать массив float из памяти?

Как прочитать массив float из памяти?

Делаю dll inject в процесс, в нем нужно прочитать структуру VMatrix из адреса 0x1006B40

204