SQLなら俺に訊け [無断転載禁止]©2ch.net (457レス)
SQLなら俺に訊け [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1499985653/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
160: デフォルトの名無しさん [sage] 2021/12/24(金) 21:37:57.02 ID:cMhJNtck >>157 その案はどちらもテーブルスキャンになってインデックス使わない SELECT句のCASE式とは別にWHERE句に本来の条件を書く DB構造の話はカラムとして持つべきデータじゃなくて 子テーブルの行として持つべきデータかと思ったんだけど 全文検索でいずれかのカラムに検索キーワードが含まれてる行を どのカラムかという情報も含めて抽出する用途なんであれば そのままでいいんじゃないかと思う http://mevius.5ch.net/test/read.cgi/tech/1499985653/160
161: デフォルトの名無しさん [sage] 2021/12/24(金) 22:28:50.21 ID:unjC7EWw >>160 > その案はどちらもテーブルスキャンになってインデックス使わない そうだが、今回はこれで仕様的にも問題ない。 俺が勘違いしてたのもあって言葉が混乱しているが、 SQLiteのFTSは全文検索仕様で、通常のインデックスは作成出来ない。 FTSで「インデックス」と言われてるのは全文検索用のキーワードインデックスで、 つまりMATCHがLIKEに比べて糞速いだけで、常に全row検索する仕様のようだ。 https://sqlite.org/fts3.html (俺がFTSの「インデックス」をここでもそのままインデックスと表記したのが不味かった。 FTS用のテーブルでは通常のインデックスでの単rowからの検索は出来ない。 《rowidだけは使えるらしいが、使っても explain query plan では scan と表示された》) > 子テーブルの行として持つべきデータかと思ったんだけど あーなるほど、勘がいいね。 実は元々そういう構造になっていたのだが、 下部構造のサマリを作ってしまった方が楽だからそうしようとしていて、 col0は上部から与える名前、col1は下部のそれぞれの中身の寄せ集めになってる。 だからcol0を下部構造の各行のcol1相当部分に対して混ぜ込めば、下部構造で一発クエリ出来る。 そして元々そうしていたのだが、他の都合上、管理が面倒なので変更しようとしているところ。 しかしよく分かったね。まあ妙な事をしてるからか? まあとにかくありがとう。 今回は下部構造のサマリなので、常に全文検索で問題ない。 言葉が混乱しててごめん。 http://mevius.5ch.net/test/read.cgi/tech/1499985653/161
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
2.458s*