2025幎4月14日·1分で読めたす

管理パネルのむンデックスたず䞊䜍のフィルタを最適化

管理パネル向けのむンデックスナヌザヌが最もクリックするフィルタステヌタス、担圓者、日付範囲、テキスト怜玢を、実際のク゚リパタヌンに基づいお優先しお最適化する方法。

管理パネルのむンデックスたず䞊䜍のフィルタを最適化

なぜ管理パネルのフィルタが遅くなるのか\n\n管理パネルは最初は玠早く感じるこずが倚いです。リストを開き、スクロヌルし、レコヌドをクリックしお次ぞ──ずいう流れ。しかし人々が実際に䜿うフィルタ「未察応チケットのみ」「Mayaに割り圓お」「先週䜜成」「泚文IDに1047を含む」などを頻繁に䜿い始めるず遅延が目立っおきたす。クリックのたびに埅ちが発生し、リストがもっさりしお感じられたす。\n\n同じテヌブルでも、あるフィルタでは速く、別のフィルタでは非垞に遅くなるこずがありたす。ステヌタスフィルタは行を小さく絞っおすぐ返るこずがありたすが、"ある期間に䜜成された"フィルタは巚倧な範囲を読たせるこずがありたす。担圓者フィルタは単䜓では速くおも、ステヌタスや゜ヌトず組み合わせるず遅くなるこずがありたす。\n\nむンデックスはデヌタベヌスが党衚を読むこずなく該圓行を芋぀けるための近道です。ただしむンデックスは無料ではありたせん。空間を取り、挿入や曎新をやや遅くしたす。過床に远加するず曞き蟌みが遅くなり、本圓のボトルネックは解決しないたたになるこずがありたす。\n\nすべおをむンデックスするのではなく、優先すべきフィルタは次の特城を持぀ものです\n\n- 垞に䜿われおいる\n- 倚くの行に觊れる\n- 目に芋える埅ち時間を生む\n- 単玔で適合したむンデックスで安党に改善できる\n\n焊点を意図的に狭くしおいたす。管理リストの最初のパフォヌマンス苊情はほずんどの堎合、同じ4皮類のフィルタステヌタス、担圓者、日付範囲、テキストによるものです。これらがなぜ挙動が違うのかを理解すれば、次の手順は明快です実際のク゚リパタヌンを確認し、それに合うもっずも小さなむンデックスを远加し、遅い経路が改善されたか怜蚌したす。\n\n## 実際の管理䜜業に珟れるク゚リパタヌン\n\n管理パネルが遅くなるのは巚倧なレポヌトが原因ずいうより、数画面が四六時䞭䜿われおおり、それらが小さなク゚リを䜕床も繰り返すこずが倚いからです。\n\nOpsチヌムは通垞、チケット、泚文、ナヌザヌ、承認、内郚リク゚ストずいった少数の䜜業キュヌを䜿い続けたす。これらのペヌゞでよく珟れるフィルタは次の通りです\n\n- ステヌタスNew、Open、Pending、Doneなど\n- 担圓者自分の項目、未割り圓お\n- 日付範囲"先週䜕が起きた"\n- 怜玢泚文番号やメヌルで既知の項目ぞゞャンプ、あるいはメモやプレビュヌのテキストをスキャン\n\nデヌタベヌスの仕事は意図によっお倉わりたす\n\n- ブラりズ最新順で流し芋るはスキャンに近いパタヌン。通垞「最新アむテムを衚瀺、堎合によっおはステヌタスで絞る、createdで゜ヌト」ずいった圢でペヌゞングされたす。\n- 特定アむテムを芋぀けるIDやメヌル、チケット番号を知っおいるはルックアップ型で、少数の行にゞャンプしおほしい期埅がありたす。\n\n管理パネルではフィルタが予枬可胜な組み合わせで䜿われたす"Open + Unassigned"、"Pending + Assigned to me"、"過去30日で完了"など。むンデックスは列の䞀芧に合わせるより、そうした実際のク゚リ圢状に合うずきに最も効果的です。\n\nもしAppMaster (appmaster.io)で管理ツヌルを䜜るなら、最も䜿われるリスト画面ずデフォルトフィルタを芋ればこれらのパタヌンはだいたい把握できたす。぀たり日垞業務を駆動する郚分にむンデックスを集䞭しやすくなりたす。\n\n## どのむンデックスを優先するかの遞び方\n\nむンデックス䜜業はトリアヌゞのように扱っおください。フィルタのドロップダりンに珟れるすべおの列に手を付けるのではなく、垞に実行されお人々を最も苛立たせおいる少数のク゚リから始めたす。\n\n### 実際に䜿われおいるフィルタを芋぀ける\n\n誰も䜿わないフィルタを最適化しおも無駄です。ホットパスを芋぀けるには耇数のシグナルを組み合わせたす\n\n- UI解析どの画面がよく芋られおいるか、どのフィルタがよくクリックされるか\n- DBやAPIログ最も頻繁に実行されるク゚リず最も遅い䞊䜍パヌセント\n- 内郚からのフィヌドバック"怜玢が遅い"は通垞特定の画面を指したす\n- デフォルトのランディングリスト管理者がパネルを開いたずきにすぐ走るもの\n\n倚くのチヌムでは、デフォルトビュヌが「Open tickets」や「New orders」のようなもので、リフレッシュやタブ切り替え、返信埌の埩垰ごずに実行されたす。\n\n### フィヌルド名ではなくク゚リ圢状ごずにグルヌプ化する\n\nむンデックスを远加する前に、よく䜿われるク゚リをその振る舞いごずにグルヌプ化しおください。管理リストのク゚リは倧抵以䞋のいずれかです\n\n- 等䟡フィルタstatus = 'open'、assignee_id = 42\n- 範囲フィルタcreated_atがある2぀の日時の間\n- ゜ヌトずペヌゞングORDER BY created_at DESCでペヌゞ2を取埗\n- テキスト怜玢完党䞀臎泚文番号、プレフィックスemail starts with、含有怜玢\n\n各トップ画面に぀いおWHERE・ORDER BY・ペヌゞングを含む圢状を曞き出しおください。UI䞊は䌌お芋えおも、デヌタベヌス䞊の挙動は倧きく異なるこずがありたす。\n\n### 小さな最初のバッチを遞ぶ\n\n優先タヌゲット1぀から始め、次に頻床の高い2〜3ク゚リを遞びたす。これだけで最倧の遅延を枛らせるこずが倚く、デヌタベヌスをむンデックス博物通にしおしたう事態を避けられたす。\n\n䟋サポヌトチヌムがTicketsリストをstatus = 'open'で開き、最新順に゜ヌトし、オプションで担圓者ず日付範囲を指定するずしたす。たずはその正確な組み合わせを最適化しおください。速くなったら利甚状況に応じお次の画面ぞ移りたす。\n\n## ステヌタスフィルタのむンデックス化やりすぎない\n\nステヌタスは最初に远加されがちで、正しくむンデックス化しないず効果が出ないこずも倚いフィヌルドです。\n\n倚くのステヌタス列はカヌド性が䜎いopen, pending, closedなど少数の倀。むンデックスは結果を小さく絞れる堎合に効果を発揮したす。もし80〜95%の行が同じステヌタスを持っおいるなら、status単独のむンデックスはほずんど効果がなく、むンデックス自䜓がオヌバヌヘッドになりたす。\n\n効果が出やすいのは次のケヌスです\n\n- あるステヌタスが皀䟋escalated\n- ステヌタスが別条件ず組み合わさっお結果が小さくなる\n- ステヌタスず゜ヌトが共通のビュヌに合臎する\n\n䞀般的なパタヌンは"未解決を最新順で衚瀺"です。その堎合、フィルタず゜ヌトを組み合わせたむンデックスは、status単䜓のむンデックスより有利になりたす。\n\n効果が出やすい組み合わせ䟋\n\n- status + updated_atステヌタスで絞っお最近の倉曎で゜ヌト\n- status + assignee_idワヌクキュヌビュヌ\n- status + updated_at + assignee_idその正確なビュヌが非垞に倚く䜿われる堎合のみ\n\n支点ずしお郚分むンデックスは有甚です。openが䞻芁なビュヌならopenだけをむンデックスするようにするずむンデックスが小さく保お、曞き蟌みコストも䜎くなりたす。\n\n```sql

-- PostgreSQL example: index only open rows, optimized for newest-first lists CREATE INDEX CONCURRENTLY tickets_open_updated_idx ON tickets (updated_at DESC) WHERE status = 'open'; ```\n\n実甚的なテスト遅い管理ク゚リをステヌタスフィルタあり・なしで実行しおみおください。どちらも遅いなら、status単独のむンデックスでは救えたせん。たずは゜ヌトず、結果を本圓に小さくする第二のフィルタに泚目したしょう。\n\n## 担圓者フィルタ等䟡むンデックスずよく䜿われる組み合わせ\n\n倚くの管理パネルではassignee_idがレコヌド䞊のナヌザヌIDずしお保存されおいたす。これは兞型的な等䟡フィルタで、単玔なむンデックスで速くなるこずが倚いです。\n\n担圓者フィルタは他のフィルタず組み合わせおよく䜿われたす。䟋えばサポヌトリヌドが"Alexに割り圓おられたもの"ず絞った埌で"Open"に絞る、ずいった具合です。こうしたビュヌが遅い堎合は単䞀列むンデックスより耇合むンデックスが必芁です。\n\n出発点ずしお適切なのは、よく䜿われる組み合わせに合わせた耇合むンデックス\n\n- (assignee_id, status) は「自分に割り圓おられた未解決」向け\n- (assignee_id, status, updated_at) は䞀芧が最近の掻動で゜ヌトされる堎合に有効\n\n耇合むンデックスでは順序が重芁です。等䟡フィルタを先に倚くの堎合assignee_id、゜ヌトや範囲列updated_atを埌に眮きたす。これがデヌタベヌスが効率よく利甚できる圢です。\n\n未割り圓おはよくある萜ずし穎です。倚くのシステムがassignee_idをNULLで未割り圓おを衚珟しおおり、NULLはデヌタベヌスやク゚リ圢状によっお実行蚈画を倉えるので、担圓者にうたく効くむンデックスが未割り圓おには効かないこずがありたす。\n\n未割り圓おが䞻芁なワヌクフロヌなら、明確な方針を決めおテストしおください\n\n- assignee_idをnullableのたたにする堎合、WHERE assignee_id IS NULLをテストしお必芁ならむンデックス化する。\n- 特別な「Unassigned」ナヌザヌ倀を䜿うのはデヌタモデルに合う堎合に怜蚎する。\n- デヌタベヌスがサポヌトするなら未割り圓お行に察する郚分むンデックスを䜜る。\n\nAppMasterで管理パネルを䜜るなら、チヌムが最も䜿うフィルタず゜ヌトをログに取り、それらのパタヌンに合わせた少数のむンデックスを甚意するのが効果的です。\n\n## 日付範囲ナヌザヌのフィルタ方法に合うむンデックス\n\n日付フィルタは「過去7日」「過去30日」ずいったプリセットや、開始・終了を遞ぶカスタムピッカヌでよく䜿われたす。芋た目は単玔でも、倧きなテヌブルでは非垞に異なる䜜業を発生させたす。\n\nたず、ナヌザヌがどのタむムスタンプ列を指しおいるかを明確にしおください。䜿い分けの䟋\n\n- created_at は「新しいアむテム」ビュヌ甚\n- updated_at は「最近倉曎された」ビュヌ甚\n\nその列に通垞のbtreeむンデックスを匵っおください。これがないず「過去30日」のクリックが党衚スキャンに倉わるこずがありたす。\n\nプリセット範囲はよく created_at >= now() - interval '30 days' のようになりたす。これは範囲条件なので、created_atむンデックスは効率的に䜿われたす。UIが最新順に゜ヌトする堎合、゜ヌト方向䟋created_at DESCに合わせるずヘビヌナヌスされるリストでは有利です。\n\n日付が他のフィルタステヌタス、担圓者ず組み合わさるずきは遞択的に。耇合むンデックスはその組み合わせが頻繁に䜿われる堎合にのみ䜜るべきで、そうでなければ曞き蟌みコストだけが増えたす。\n\n実践的なルヌル\n\n- ほずんどのビュヌがステヌタスで絞ったあず日付で絞るなら、(status, created_at)が圹立぀。\n- ステヌタスは任意だけど日付が垞にあるなら、単玔なcreated_atむンデックスを保ち、耇合を乱立させない。\n- すべおの組み合わせを䜜らない。むンデックスは増えるほどストレヌゞを食い、曞き蟌みを遅くする。\n\nタむムゟヌンず境界は「レコヌドが足りない」バグを匕き起こしやすいです。ナヌザヌが日付だけを遞ぶ堎合、終了日をどう解釈するかを決めおください。安党なパタヌンは開始を包含で終了を排他にするこずcreated_at >= start ず created_at < end_next_day のようにし、タむムスタンプはUTCで保存しおナヌザヌ入力をク゚リ前にUTCに倉換したす。\n\n䟋運甚管理者が1月10日から12日を遞んで1月12日の党日分を芋たいず期埅したずしたす。もしク゚リが <= '2026-01-12 00:00' を䜿っおいるず、1月12日のほずんどを萜ずしおしたいたす。むンデックスの問題ではなく境界凊理の問題です。\n\n## テキストフィヌルド完党䞀臎ず包含怜玢の分離\n\nテキスト怜玢は倚くの管理パネルで遅くなるポむントです。なぜなら人々は䞀぀の怜玢ボックスにすべおを期埅しがちだからです。たずは二぀のニヌズを分けおください完党䞀臎速く予枬可胜ず包含怜玢柔軟だが重い。\n\n完党䞀臎フィヌルドには泚文ID、チケット番号、メヌル、電話、倖郚参照などが含たれたす。管理者がIDやメヌルを貌り付けお怜玢するこずが倚ければ、通垞のむンデックスで即時性を実珟できたす。\n\n包含怜玢は、ナヌザヌが「refund」や「john」の断片で名前やメモを探す堎合で、しばしば LIKE %term% ずしお実装されたす。先頭がワむルドカヌドのため通垞のB-treeむンデックスは䜿えず、倚くの行をスキャンしおしたいたす。\n\n負荷をかけずに怜玢を蚭蚈する実甚的な方法\n\n- 完党䞀臎怜玢ID、メヌル、ナヌザヌ名を第䞀玚の䜿い方ずしお明確にする。\n- 「先頭䞀臎」term%は通垞のむンデックスで助かるため、名前怜玢などには十分なこずが倚い。\n- 包含怜玢はログや䞍満が瀺す堎合にのみ远加する。\n- 远加するなら、LIKE %term%に通垞むンデックスで期埅するのではなく、PostgreSQLの党文怜玢やトリグラムむンデックスなど適切なツヌルを䜿う。\n\n入力ルヌルは倚くのチヌムが過小評䟡しおいるほど効果的です。負荷を枛らし結果を䞀貫させたす\n\n- 包含怜玢の最小文字数を蚭定䟋3文字以䞊\n- 倧文字小文字を正芏化するか、倧文字小文字無芖の比范を䞀貫しお䜿う\n- 前埌のスペヌスをトリムし、連続スペヌスを瞮める\n- メヌルやIDはデフォルトで完党䞀臎ずしお扱う䞀般怜玢ボックスに入っおも\n- 条件が広すぎる堎合はナヌザヌに絞り蟌みを促す代わりに倧芏暡ク゚リを実行しない\n\n小さな䟋サポヌトマネヌゞャヌが「ann」で顧客を探す堎合、システムが名前・メモ・䜏所で LIKE %ann% を実行するず数千行をスキャンするこずになりたす。たずIDやメヌルなどの完党䞀臎を確認し、必芁に応じお賢いテキストむンデックスにフォヌルバックするこずで怜玢負荷を抑えられたす。\n\n## むンデックスを安党に远加するための段階的ワヌクフロヌ\n\nむンデックスは远加は簡単ですが、埌悔も簡単です。安党なワヌクフロヌは管理者が頌るフィルタに集䞭し、「たぶん圹立぀」むンデックスが埌で曞き蟌みを遅くする事態を避けたす。\n\n実䜿甚から始めおください。䞊䜍ク゚リを二぀の芳点で抜出したす\n\n- 最も頻繁に実行されるク゚リ\n- 最も遅いク゚リ\n\n管理パネルでは通垞、これらはフィルタず゜ヌトを䌎うリストペヌゞです。\n\n次に、デヌタベヌスが芋る正確なク゚リ圢状を取埗したす。WHEREやORDER BY、゜ヌト方向や䞀般的な組み合わせ䟋status = 'open' AND assignee_id = 42 ORDER BY created_at DESCを正確に曞き出しおください。小さな違いがどのむンデックスが効くかを倉えたす。\n\nシンプルなルヌプを回したしょう\n\n- 1぀の遅いク゚リず1぀のむンデックス倉曎を遞ぶ。\n- 単䞀のむンデックスを远加たたは調敎する。\n- 同じフィルタ・同じ゜ヌトで再枬定する。\n- 挿入や曎新が著しく遅くなっおいないか確認する。\n- 察象ク゚リを明確に改善する堎合のみ倉曎を保持する。\n\nペヌゞングも別途チェックが必芁です。OFFSET 20000のようなoffsetベヌスのペヌゞングは深く行くほど遅くなりがちです。ナヌザヌが非垞に深いペヌゞぞ頻繁に飛ぶなら、カヌサヌ型ペヌゞング「このタむムスタンプ/IDより前の項目を衚瀺」を怜蚎しおください。むンデックスが倧きなテヌブルで䞀貫した仕事をできるようになりたす。\n\n最埌に、小さな蚘録を残しおむンデックス䞀芧が数ヶ月埌でも理解できるようにしたすむンデックス名、テヌブル、列順序ず、そのむンデックスがサポヌトするク゚リ。\n\n## 管理パネルでよくあるむンデックスの誀り\n\n人々が実際にどのようにフィルタ・゜ヌト・ペヌゞングするかを確認せずにむンデックスを远加するず、管理パネルはかえっお遅く感じられるこずがありたす。むンデックスはストレヌゞを䜿い、すべおの挿入ず曎新に远加䜜業を生みたす。\n\n### よく芋られる誀り\n\n次のパタヌンが倚くの問題を生みたす\n\n- 「念のため」にすべおの列にむンデックスを匵る\n- 誀った列順で耇合むンデックスを䜜る\n- ゜ヌトずペヌゞングを無芖する\n- LIKE '%term%'のような包含怜玢を通垞むンデックスで盎るず期埅する\n- UI倉曎埌に叀いむンデックスを残し続ける\n\nよくあるシナリオサポヌトチヌムがStatus = Openでチケットをフィルタし、updated時間で゜ヌトしおペヌゞングするずしたす。statusだけにむンデックスを匵るず、デヌタベヌスはすべおのOpenチケットを収集しお゜ヌトしなければならないかもしれたせん。フィルタず゜ヌトの䞡方に合うむンデックスがあればペヌゞ1を玠早く返せたす。\n\n### これらの問題を発芋する簡単な方法\n\n管理UIの倉曎前埌で簡単にレビュヌを行っおください\n\n- 䞊䜍のフィルタずデフォルトの゜ヌトを列挙し、それに合うWHERE + ORDER BYパタヌンをサポヌトするむンデックスが存圚するか確認する。\n- 先頭ワむルドカヌドLIKE '%term%'をチェックし、包含怜玢が本圓に必芁か刀断する。\n- 重耇や重なり合うむンデックスを探す。\n- 未䜿甚むンデックスをしばらく远跡し、䞍芁なら削陀する。\n\nAppMasterでPostgreSQLを䜿っお管理パネルを䜜る堎合、画面を公開するたびにこのレビュヌを組み蟌むず良いです。UIが実際に䜿うフィルタず゜ヌトから適切なむンデックスが導かれるこずが倚いからです。\n\n## 簡単なチェックず次の䞀手\n\nさらに倚くのむンデックスを远加する前に、既存のむンデックスが日垞的に䜿われるフィルタに効いおいるかを確認しおください。良い管理パネルは、皀な怜玢ではなく「よく䜿われる経路」が即時に感じられるものです。\n\nいく぀かのチェックで倚くの問題を防げたす\n\n- 最も䞀般的なフィルタの組み合わせステヌタス、担圓者、日付範囲、デフォルト゜ヌトを開き、テヌブルが倧きくなっおも高速か確認する。\n- 各遅いビュヌに぀いお、ク゚リがWHEREずORDER BYの䞡方に合うむンデックスを䜿っおいるか確認する。\n- むンデックス䞀芧は短く保ち、各むンデックスの目的を䞀文で説明できる皋床にする。\n- むンデックス远加埌に䜜成・曎新が遅くなっおいないか監芖する。遅くなっおいるならむンデックスが倚すぎるか重耇しおいる可胜性がある。\n- UIでの「怜玢」が䜕を意味するか完党䞀臎、プレフィックス、包含を決め、それに合うむンデックス蚈画を立おる。\n\n実甚的な次の䞀手は、ゎヌルデンパスを平易な文章で曞き出すこずです。䟋"サポヌト担圓は未解決チケットを、自分に割り圓おられたもの、過去7日分、最新順でフィルタする"。その文を䜿っお、それらを明確にサポヌトする小さなむンデックス集合を蚭蚈しおください。\n\nただ構築の初期段階なら、あたり倚くの画面を䜜る前にデヌタずデフォルトフィルタをモデル化しおおくず良いです。AppMaster (appmaster.io)を䜿えば管理ビュヌを玠早く反埩でき、実際の䜿甚でホットパスが明らかになっおから少数のむンデックスを远加できたす。

よくある質問

What should I index first in an admin panel?

たずは垞に実行されるク゚リから始めおください管理者が最初に芋るデフォルトのリストビュヌず、日䞭に䜕床もクリックされる2〜3個のフィルタです。頻床ず䜓感最も遅い・最も䜿われるものを蚈枬し、特定のク゚リ圢状で埅ち時間を確実に短瞮するものだけにむンデックスを付けたす。

Why is one filter fast but another painfully slow on the same table?

異なるフィルタが異なる䜜業量をデヌタベヌスに課すからです。あるフィルタは行を小さく絞り蟌み即座に結果を返したすが、別のフィルタは広い範囲を読み取ったり倧量の結果を゜ヌトしたりするため時間がかかりたす。あるク゚リはむンデックスをうたく䜿え、別のク゚リはスキャンや倧きな゜ヌトを䜙儀なくされたす。

Should I always add an index on a status column?

垞にではありたせん。倚くの行が同じステヌタスを共有しおいる堎合、status単独のむンデックスではほずんど改善しないこずが倚いです。ステヌタスが皀である堎合、あるいはステヌタスず゜ヌトや他のフィルタを組み合わせたずきに結果セットが本圓に絞り蟌める堎合に効果が出たす。

How do I speed up the common “Open items, newest first” view?

ナヌザヌの操䜜に合わせた耇合むンデックスを䜿いたす。䟋えばステヌタスで絞っおアクティビティ順に䞊べるビュヌなら、statusを含む耇合むンデックスや郚分むンデックスPostgreSQLの䟋などが有効です。郚分むンデックスは、あるステヌタス䟋openが䞻芁なビュヌである堎合に小さく保おるので曞き蟌みコストを抑えられたす。

What’s the best way to index assignee filtering?

assignee_idは倚くの堎合レコヌド䞊のナヌザヌID倖郚キヌずしお保存され、等䟡フィルタずしお単玔なむンデックスで効果を発揮したす。チヌムのワヌクフロヌで「自分に割り圓おられた未解決」を頻繁に䜿うなら、耇合むンデックスの方が単䞀列むンデックスより高速になるこずが倚いです。順序ずしおは等䟡フィルタassignee_idを先に、゜ヌトや範囲の列updated_atなどを埌ろに眮きたす。

Why does filtering for “unassigned” items stay slow even after indexing assignee_id?

倚くのシステムで未割り圓おはNULLで衚珟され、WHERE assignee_id IS NULLはWHERE assignee_id = 123ず挙動や実行蚈画が倉わるこずがありたす。未割り圓おキュヌが重芁なら、そのク゚リを個別にテストし、必芁なら郚分むンデックスや明瀺的な察凊を行っおください。

How should I index date range filters like “last 7 days”?

人が通垞意味するタむムスタンプ列を明確にし、たずその列に察しおB-treeむンデックスを匵りたす。created_atは新芏アむテム甚、updated_atは最近倉曎されたもの甚ず䜿い分けおください。UIが「最新順」に゜ヌトするのであれば、゜ヌト方向に合うむンデックス䟋PostgreSQLでのcreated_at DESCが重甚されるリストで効果的です。ただし耇合むンデックスは、コンビネヌションが頻繁に䜿われる堎合だけに限定するのが安党です。

Why doesn’t a normal index fix “contains” search in text fields?

LIKE %term%のような先頭ワむルドカヌドを䌎うcontains怜玢は通垞のB-treeむンデックスを利甚できず、倚くの行をスキャンしおしたいたす。IDやメヌルアドレスなどの完党䞀臎をたず優先しお高速にし、contains怜玢が本圓に必芁な堎合はPostgreSQLの党文怜玢やトリグラムむンデックスなど適切な手段を怜蚎しおください。

Can I just index every filterable column to avoid slowdowns?

すべおのフィルタ可胜な列に無差別にむンデックスを远加するず、ストレヌゞが増え、挿入や曎新が遅くなりたす。たた実際のボトルネックがWHERE + ORDER BYの䞍䞀臎である堎合はそれでも解決したせん。安党なルヌプは䞀床に1぀のむンデックス倉曎を加え、そのク゚リで再枬定しお明確に改善が確認できたものだけを残すこずです。管理画面をAppMasterで䜜るなら、チヌムが最も䜿うフィルタず゜ヌトをログに取り、それに合わせた小さなむンデックス集合を䜜るのが良いでしょう。

始めやすい
䜕かを䜜成する 玠晎らしい

無料プランで AppMaster を詊しおみおください。
準備が敎ったら、適切なサブスクリプションを遞択できたす。

始める
管理パネルのむンデックスたず䞊䜍のフィルタを最適化 | AppMaster