индекс скорости полнотекстового поиска с использованием codeigniter работает не так сильно, как скорость

у меня проблемы с полнотекстовым поиском с помощью CodeIgniter. здесь у меня есть одна таблица с динамическими строками и столбцами, когда я ищу поле ввода в одну строку с использованием полнотекстового индекса, это происходит очень медленно. здесь уже установлены следующие значения в качестве механизма БД как MYISAM и столбца таблицы как FULLTEXT INDEX. Я хочу, чтобы данные в поле ввода были очень быстрыми. здесь я приложил то, что я устал. Пожалуйста, проверьте это и дайте мне знать.

public function product_autocomplete()
{
  $name_startsWith = $_POST['name_startsWith'];
  $type = $_POST['type'];
  $row_num = $_POST['row_num'];
  $this->db->like('item_number', $name_startsWith);
  $query = $this->db->select('item_id,item_number,name,tax_included,cost_price,categoryid,unit_price,supplier_id,quantity_received')
  ->from('bgs_items')
  ->where('MATCH (bgs_items.item_number) AGAINST ("'. $name_startsWith .'")', NULL, false)
  ->limit(10)
  ->get();
  $data = array();

  foreach ($query->result_array() as $row)
  {
    $name = $row['item_number']."-".$row['name'].'|'.$row['name'].'|'.$row['tax_included'].'|'.$row['cost_price'].'|'.$row['categoryid'].'|'.$row['unit_price'].'|'.$row['supplier_id'].'|'.$row['quantity_received'].'|'.$row['item_number'].'|'.$row['item_id'].'|'.$row['supplier_id'].'|'.$row_num;
    array_push($data, $name);
  }
  echo json_encode($data);
}

person user3839366    schedule 27.02.2017    source источник
comment
почему вы используете like и against в одном запросе?   -  person Nishant Nair    schedule 27.02.2017
comment
да, какой запрос я хочу использовать для получения данных из БД   -  person user3839366    schedule 27.02.2017


Ответы (1)


Пожалуйста, попробуйте использовать запрос ниже

    public function product_autocomplete()
    {
      $name_startsWith = $_POST['name_startsWith'];
      $type = $_POST['type'];
      $row_num = $_POST['row_num'];
      $query = $this->db->select('item_id,item_number,name,tax_included,cost_price,categoryid,unit_price,supplier_id,quantity_received')
      ->from('bgs_items')
      ->where('MATCH (bgs_items.item_number) AGAINST ("'. $name_startsWith .'")', NULL, false)
      ->limit(10)
      ->get();
      $data = array();

      foreach ($query->result_array() as $row)
      {
        $name = $row['item_number']."-".$row['name'].'|'.$row['name'].'|'.$row['tax_included'].'|'.$row['cost_price'].'|'.$row['categoryid'].'|'.$row['unit_price'].'|'.$row['supplier_id'].'|'.$row['quantity_received'].'|'.$row['item_number'].'|'.$row['item_id'].'|'.$row['supplier_id'].'|'.$row_num;
        array_push($data, $name);
      }
      echo json_encode($data);
    }
person Nishant Nair    schedule 27.02.2017