Рубрики
Uncategorized

Laravel: Как использовать “ИНДЕКС ИСПОЛЬЗОВАНИЯ” и `ИНДЕКС СИЛЫ` для красноречивого и MySQL

Красноречивый – это мощный класс для работы с базами данных, легко расширяемый и простой в использовании. Но… Помеченный php, laravel, mysql.

Красноречивый – это мощный класс для работы с базами данных, легко расширяемый и простой в использовании. Но иногда необходимо получить немного больше, чем разработчики предусмотрели на данный момент.

Некоторое время назад я расследовал проблему с индексами MySQL в большой таблице и понял, что невозможно создать запрос с помощью операторов use index или force index с использованием класса Laravel Eloquent.

Вот почему я попытался это исправить:)

Позвольте мне представить простой пакет Laravel для удовлетворения этих потребностей: https://github.com/vpominchuk/laravel-mysql-use-index-scope

Установка

композитору требуется vpominchuk/laravel-mysql-использование-индекс-область

Использование

Просто укажите необходимый признак в вашей модели:

Модель

use VPominchuk\ModelUseIndex;

class MyModel extends Model
{
    use ModelUseIndex;
    ...
    ...
}

В любом месте кода:

$builder = MyModel::where('name', $name)->where('age', $age)->
        useIndex($indexName)->...

Индексы MySQL

Не забудьте создать именованный индекс с помощью миграции Laravel:

$table->index(['name', 'age'], 'user_age_index');

Доступные методы

использовать индекс($имя индекса) Говорит MySQL использовать индекс, если это возможно.

индекс силы(имя индекса $) Заставьте MySQL использовать индекс, если это возможно.

Оригинал: “https://dev.to/vpominchuk/laravel-how-to-use-use-index-and-force-index-for-eloquent-and-mysql-4n1”