Laravel upsert MySQL 8 - индекс используется правильноMySql

Форум по Mysql
Ответить
Anonymous
 Laravel upsert MySQL 8 - индекс используется правильно

Сообщение Anonymous »

Хочу получить некоторые разъяснения по поводу обновления Laravel и того, является ли мой код логически правильным. У меня есть модель FlightStat (прикреплю схему), и мне нужно добавить несколько строк, в моей таблице 30 000 строк, и простое добавление этих двух записей занимает 15 мс
Моя схема:
Schema::create('flight_stats', function (Blueprint $table) {
$table->ulid('id')->primary();
$table->integer('country');
$table->integer('flight');
$table->bigInteger('total_trips')->default(0);

$table->char('key_hash', 16)->charset('binary')->virtualAs("
unhex(MD5(CONCAT(
`country`, '',
`flight`, ''
)))
");

$table->timestamps();

$table->unique('key_hash');
});

И мое утверждение:
$flights = [[
'country' => rand(1, 500000),
'flight' => rand(1, 500000),
'total_trips' => 10
], [
'country' => 99,
'flight' => 99,
'total_trips' => 10
]];

$stat = FlightStat::upsert($flights, [
'country',
'flight',
'key_hash'
], [
'total_trips' => new Expression("`total_trips` + VALUES(`total_trips`)")
]);


Подробнее здесь: https://stackoverflow.com/questions/793 ... -correctly
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»