-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdatabase_optimization.sql
More file actions
59 lines (53 loc) · 2.65 KB
/
Copy pathdatabase_optimization.sql
File metadata and controls
59 lines (53 loc) · 2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
-- Database Optimization Script for Bonded App
-- This script fixes the duplicate index issue and optimizes the schema
-- ============================================
-- ISSUE 1: Remove Duplicate Indexes
-- ============================================
-- You have 19 identical indexes on the same column, which is wasteful.
-- The primary key already provides an index, and you only need ONE additional
-- index for pattern matching (if using LIKE queries).
-- Drop all the duplicate indexes
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx1;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx2;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx3;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx4;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx5;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx6;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx7;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx8;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx9;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx10;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx11;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx12;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx13;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx14;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx15;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx16;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx17;
DROP INDEX IF EXISTS public.kv_store_2516be19_key_idx18;
-- ============================================
-- OPTIMIZATION: Create Single Pattern Index
-- ============================================
-- Only create ONE index for pattern matching (used by getByPrefix function)
-- The primary key already provides an index for exact lookups
CREATE INDEX IF NOT EXISTS kv_store_2516be19_key_pattern_idx
ON public.kv_store_2516be19
USING btree (key text_pattern_ops)
TABLESPACE pg_default;
-- ============================================
-- OPTIONAL: Add JSONB Index for Value Queries
-- ============================================
-- If you need to query within the JSONB value field, consider adding a GIN index
-- This is optional and only needed if you query JSONB fields frequently
-- CREATE INDEX IF NOT EXISTS kv_store_2516be19_value_gin_idx
-- ON public.kv_store_2516be19
-- USING gin (value)
-- TABLESPACE pg_default;
-- ============================================
-- VERIFICATION: Check Current Indexes
-- ============================================
-- Run this to verify the cleanup worked:
-- SELECT indexname, indexdef
-- FROM pg_indexes
-- WHERE tablename = 'kv_store_2516be19';