この記事の目次
chevron_right
はじめに
chevron_right
結論
chevron_right
Laravelクエリビルダ
chevron_right
生成されるDDL
chevron_right
参考
はじめに
みなさん、MySQL問わず index
をちゃんと貼っていますか?
indexを貼ることはデータベースを使う上で必須技術です。
indexを正しく理解して使うことは大切ですね!
MySQL8から、降順indexが使えるようになりました。
これは何かというと、selectしたときに逆順にindexが貼られるというものです。
何気なしにindexを貼って理解していない人はこの説明でなんのこっちゃわかんないと思いますが、
例えばプライマリーキー(以降PK)をselectしたとき、1, 2, 3, ... と昇順で帰ってきますよね?
これはPKに昇順indexが当たっているからです。
つまりselectをしたときに、indexが使われていて、order句がなければindexの順に返ってくるということですね。
今までは昇順しか対応していなかったのですが、現在は降順indexが使えるようになりました。
なので、せっかくなので使いたいのですがLaravelでの使い方が分からなかったので調べてみました。
結論
クエリビルダではなさそうなので、一部、生のSQLを使う必要があるようです。
Laravelクエリビルダ
Schema::create('post', function (Blueprint $table) {
$table->id('post_id');
$table->timestamp('created_at')->useCurrent();
$table->index([DB::raw('created_at desc')], 'idx_post_created_at');
});
生成されるDDL
create table post
(
post_id bigint unsigned auto_increment
primary key,
created_at timestamp default CURRENT_TIMESTAMP not null
)
collate = utf8mb4_unicode_ci;
create index idx_post_created_at
on post (created_at desc);
しっかりとdesc
、降順のindexが指定されていますね!
いい感じです。
では、今回はこれで
参考
この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。