🚀 سست Prisma کا حل

سست Prisma کویریز ٹھیک کریں
اپنی API کو 2–7× تیز کریں (زیادہ سے زیادہ 53.5×)

کیا Prisma سست ہے؟ آپ اکیلے نہیں۔ Prisma کا DX پسند ہے مگر بہتر performance چاہیے؟ سست Prisma کویریز کو 2–7× تیز کریں (SQLite relation filters پر زیادہ سے زیادہ 53.5×) بغیر کسی موجودہ query کو بدلے۔

تیز Prisma reads
کوئی query تبدیلی نہیں
Production-ready
137 E2E tests
ایک لائن میں سست Prisma ٹھیک کریں
import { PrismaClient, Prisma } from '@prisma/client'
import { speedExtension, convertDMMFToModels } from 'prisma-sql'
import postgres from 'postgres'

const sql = postgres(process.env.DATABASE_URL)
const models = convertDMMFToModels(Prisma.dmmf.datamodel)

const prisma = new PrismaClient().$extends(
  speedExtension({ postgres: sql, models })
)

const users = await prisma.user.findMany({
  where: { status: 'ACTIVE' },
  include: { posts: true }
})
2–7×
تیز Prisma reads
عام speedup
0
Query تبدیلیاں
اپنے موجودہ Prisma calls رکھیں
137
E2E tests
Verified solution
100%
Type safety
وہی Prisma API

Prisma کیوں سست ہے؟

Prisma کی evolution اور performance characteristics سمجھنے سے واضح ہوتا ہے کہ یہ extension کیوں موجود ہے۔

Prisma کا سفر: پہلے DX، اور scale پر performance اہم

🎯 2019: جدید Prisma کی پیدائش

Prisma 2 2019 میں لانچ ہوا، اور type-safe database access اور schema سے generated types کے ذریعے TypeScript ORM landscape بدل دیا۔ Prisma نے engine-based architecture متعارف کرایا تاکہ queries translate ہوں، validate ہوں، اور مضبوط guarantees ملیں جو traditional JavaScript ORMs کے ساتھ حاصل کرنا مشکل تھا۔

⚡ 2020–2022: تیز ترقی اور فیچرز میں اضافہ

Prisma نے nested writes، transactions، اور middleware جیسے طاقتور فیچرز شامل کیے۔ فیچرز بڑھے، لیکن ہر query پھر بھی architectural cost ادا کرتی ہے: queries کو represent، validate، execute کیا جاتا ہے اور نتائج Prisma API کے مطابق shape کیے جاتے ہیں۔

📊 2023: scale پر overhead نمایاں ہوتا ہے

جیسے جیسے زیادہ ٹیمیں high-traffic workloads میں Prisma deploy کرتی ہیں، per-query fixed overhead قابلِ پیمائش ہو جاتا ہے۔ یہ read-heavy endpoints، analytics، aggregations، اور بڑے result sets میں سب سے زیادہ نظر آتا ہے۔ یہ bug نہیں؛ Prisma کی guarantees اور API behavior کی cost ہے۔

🚀 2024–2025: Prisma کی performance پر کام جاری

Prisma نے performance اور engine changes پر فوکس کرتے ہوئے بڑے updates جاری کیے۔ بہتری کے باوجود raw SQL کو براہِ راست execute کرنے کے مقابلے میں parsing، validating، planning اور result shaping کی ایک unavoidable cost رہتی ہے۔

🎯 2026: prisma-sql Extension جاری

یہ extension read performance پر فوکس کرتی ہے۔ findMany، findFirst، findUnique، count، aggregate، اور groupBy کے لیے Prisma کے read execution path کو bypass کرتی ہے، جبکہ writes، migrations، schema management اور type generation کے لیے Prisma برقرار رہتا ہے۔ rollout سے پہلے اپنی Prisma version کے ساتھ compatibility validate کریں۔

💡 یہ extension کیوں موجود ہے

Prisma نے اپنے اہداف کے لیے درست architectural choices کیے: type safety، developer experience اور cross-database behavior۔ مگر یہی choices scale پر noticeable overhead بناتے ہیں۔ یہ extension Prisma کو replace نہیں کرتی — یہ reads کو optimize کرتی ہے ان ٹیموں کے لیے جو Prisma کا DX بھی چاہتی ہیں اور جہاں ضرورت ہو وہاں تیز execution بھی۔

Query translation layer

Prisma آپ کے query inputs کو database-specific SQL میں translate کرتا ہے۔ یہ cross-database behavior اور Prisma API semantics دیتا ہے، مگر database کے SQL دیکھنے سے پہلے processing time بڑھاتا ہے۔

Validation اور type guarantees

Prisma schema کے خلاف queries validate کرتا ہے اور API-level guarantees enforce کرتا ہے۔ یہ safeguards bugs کی کچھ اقسام روکتے ہیں، مگر ہر query پر overhead بھی بڑھاتے ہیں۔

Result shaping

Results کو Prisma API behavior کے مطابق shape کیا جاتا ہے۔ DX اور consistency کے لیے اچھا ہے، مگر latency بڑھاتا ہے، خاص طور پر بڑے result sets اور complex includes میں۔

یہ extension Prisma کو complement کرتی ہے اور read queries کے لیے ایک تیز راستہ دیتی ہے۔ آپ Prisma کی پسندیدہ چیزیں برقرار رکھتے ہیں اور typical cases میں 2–7× تیز reads (اور SQLite relation filters میں زیادہ سے زیادہ 53.5×) حاصل کرتے ہیں جب performance اہم ہو۔

کتنا تیز؟ حقیقی بینچ مارکس

Prisma v6، v7، Drizzle ORM اور Prisma-SQL کے درمیان جامع موازنہ

بینچ مارک ماحول: MacBook Pro M1 • PostgreSQL 15 • SQLite 3.43 • ہر ڈیٹابیس کے لیے 137 ٹیسٹ کیسز

PostgreSQL

57 ٹیسٹ کیسز کا اوسط

Prisma v6
2.10ms
Prisma v7
1.95ms
1.08× faster
Drizzle ORM
1.40ms
1.50× faster
Prisma-SQL ⚡
0.90ms
2.34× faster
6.3×
DISTINCT کوئریز
Prisma v6 کے مقابلے میں
5.5×
ریلیشن فلٹرز
Prisma v6 کے مقابلے میں ("none"-فلٹر)

SQLite

56 ٹیسٹ کیسز کا اوسط

Prisma v6
5.48ms
Prisma v7
4.12ms
1.33× faster
Drizzle ORM
2.11ms
2.60× faster
Prisma-SQL ⚡
0.73ms
7.50× faster
12.6×
سادہ کوئریز
Prisma v6 کے مقابلے میں
69.7×
ریلیشن فلٹرز
Prisma v6 کے مقابلے میں ("none"-فلٹر)

بینچ مارکس ہر ڈیٹابیس کے لیے 137 E2E ٹیسٹس پر مبنی ہیں۔ Prisma v6.16.3, Prisma v7.2.0, Drizzle ORM latest. مکمل بینچ مارک ڈیٹا دیکھیں →

تفصیلی بینچ مارک نتائج

Welch کے t-test اور 1ms عملی اہمیت کی حد کے ساتھ شماریاتی موازنہ

یہ نتائج رن ٹائم موڈ کی عکاسی کرتے ہیں، جہاں ہر درخواست پر کوئریز کو SQL میں تبدیل کیا جاتا ہے۔ پری رینڈرڈ موڈ میں، SQL بلڈ کے وقت تیار کیا جاتا ہے — رن ٹائم بغیر کسی تبدیلی کے اضافی بوجھ کے خام پیرامیٹرائزڈ کوئریز کو چلایا جاتا ہے۔

PostgreSQL Prisma v6

اوسط 1.99x بمقابلہ Prisma اوسط 1.27x بمقابلہ Drizzle 25/95 شماریاتی طور پر اہم کامیابیاں 70 شور کی حد کے اندر
Jun 7, 2026
ٹیسٹ Prisma prisma-sql Drizzle رفتار میں اضافہ اہمیت CV% n
findMany basic 0.602ms ±0.020 0.481ms ±0.257 0.357ms ~1.00x 192.7% 50
findMany where = 0.563ms ±0.015 0.373ms ±0.051 0.456ms ~1.00x 49.5% 50
findMany where >= 17.20ms ±0.509 4.82ms ±0.358 6.80ms 3.57x 1.41x D *** 26.8% 50
findMany where IN 0.614ms ±0.024 0.417ms ±0.031 0.426ms ~1.00x 27.0% 50
findMany where null 0.292ms ±0.019 0.158ms ±0.042 0.175ms ~1.00x 96.9% 50
findMany ILIKE 0.324ms ±0.054 0.271ms ±0.0097 0.295ms ~1.00x 12.8% 50
findMany AND 3.06ms ±0.169 1.00ms ±0.088 2.64ms 3.06x 2.63x D *** 31.9% 50
findMany OR 14.91ms ±0.409 3.98ms ±0.306 5.57ms 3.75x 1.40x D *** 27.7% 50
findMany NOT 0.614ms ±0.031 0.369ms ±0.023 0.408ms ~1.00x 22.4% 50
findMany orderBy 3.41ms ±0.074 1.28ms ±0.067 1.35ms 2.67x 1.05x D *** 18.8% 50
findMany pagination 0.323ms ±0.027 0.233ms ±0.026 0.242ms ~1.00x 39.5% 50
findMany select 0.289ms ±0.018 0.168ms ±0.041 0.199ms ~1.00x 87.7% 50
findMany relation some 1.24ms ±0.072 0.843ms ±0.069 ~1.00x 29.7% 50
findMany relation every 0.717ms ±0.017 0.619ms ±0.062 ~1.00x 36.0% 50
findMany relation none 31.99ms ±0.908 6.99ms ±0.368 4.58x *** 19.0% 50
findMany nested relation 0.740ms ±0.023 0.959ms ±0.139 ~1.00x 52.5% 50
findMany complex 1.19ms ±0.027 0.514ms ±0.013 0.721ms ~1.00x 8.9% 50
findFirst 0.239ms ±0.016 0.221ms ±0.025 0.209ms ~1.00x 40.3% 50
findFirst skip 0.291ms ±0.014 0.167ms ±0.0069 0.209ms ~1.00x 15.2% 50
findUnique id 0.222ms ±0.015 0.163ms ±0.029 0.136ms ~1.00x 63.8% 50
findUnique email 0.196ms ±0.011 0.114ms ±0.017 0.140ms ~1.00x 52.8% 50
count 0.127ms ±0.026 0.053ms ±0.0019 0.063ms ~1.00x 13.9% 50
count where 0.473ms ±0.016 0.271ms ±0.0067 0.297ms ~1.00x 9.0% 50
aggregate count 0.224ms ±0.014 0.164ms ±0.0097 ~1.00x 21.2% 50
aggregate sum/avg 0.326ms ±0.010 0.255ms ±0.0089 ~1.00x 12.6% 50
aggregate where 0.486ms ±0.023 0.284ms ±0.0080 ~1.00x 10.3% 50
aggregate min/max 0.322ms ±0.0091 0.254ms ±0.0089 ~1.00x 12.6% 50
aggregate complete 0.419ms ±0.011 0.304ms ±0.011 ~1.00x 12.7% 50
groupBy 0.433ms ±0.013 0.359ms ±0.011 ~1.00x 11.1% 50
groupBy count 0.498ms ±0.021 0.412ms ±0.018 ~1.00x 15.8% 50
groupBy multi 0.601ms ±0.012 0.460ms ±0.011 ~1.00x 8.2% 50
groupBy having 0.560ms ±0.012 0.516ms ±0.028 ~1.00x 19.5% 50
groupBy + where 0.559ms ±0.012 0.384ms ±0.016 ~1.00x 14.6% 50
_count via include 0.712ms ±0.027 0.698ms ±0.024 ~1.00x 12.1% 50
_count via include + relations 1.68ms ±0.041 1.69ms ±0.119 ~1.00x 25.5% 50
groupBy aggregates 0.669ms ±0.080 0.452ms ±0.017 ~1.00x 13.2% 50
groupBy min/max 0.595ms ±0.045 0.485ms ±0.053 ~1.00x 39.7% 50
include list + nested to-one 1.76ms ±0.116 0.448ms ±0.033 3.92x *** 26.6% 50
include list + nullable to-one 2.66ms ±0.040 1.83ms ±0.271 ~1.00x 53.3% 50
include posts 5.30ms ±1.31 2.13ms ±0.142 5.45ms 2.49x 2.56x D *** 24.1% 50
include profile 0.794ms ±0.088 0.472ms ±0.046 0.580ms ~1.00x 35.0% 50
include 3 levels 2.56ms ±0.333 1.63ms ±0.142 1.63ms ~1.00x 31.4% 50
include 4 levels 2.33ms ±0.102 1.07ms ±0.028 1.50ms 2.17x 1.40x D *** 9.5% 50
include + where 1.34ms ±0.038 0.796ms ±0.034 1.85ms ~1.00x 15.2% 50
include + select nested 1.51ms ±0.076 1.73ms ±0.131 1.76ms ~1.00x 27.3% 50
findMany startsWith 0.251ms ±0.020 0.178ms ±0.019 0.192ms ~1.00x 39.4% 50
findMany endsWith 0.745ms ±0.115 0.274ms ±0.039 0.356ms ~1.00x 52.0% 50
findMany NOT contains 1.00ms ±0.305 0.283ms ±0.040 0.370ms ~1.00x 50.3% 50
findMany LIKE 0.301ms ±0.079 0.170ms ±0.014 0.211ms ~1.00x 30.3% 50
findMany < 29.00ms ±0.735 6.89ms ±0.323 10.36ms 4.21x 1.50x D *** 16.9% 50
findMany <= 35.14ms ±3.06 6.75ms ±0.312 11.66ms 5.21x 1.73x D *** 16.7% 50
findMany > 16.68ms ±0.469 4.30ms ±0.211 6.95ms 3.88x 1.62x D *** 17.8% 50
findMany NOT IN 0.628ms ±0.031 0.489ms ±0.123 0.431ms ~1.00x 90.9% 50
findMany isNot null 0.621ms ±0.015 0.213ms ±0.0086 0.333ms ~1.00x 14.5% 50
orderBy multi-field 3.10ms ±0.119 0.936ms ±0.093 0.777ms 3.32x 0.83x D *** 35.9% 50
orderBy relation to-one 2.06ms ±0.047 1.52ms ±0.039 ~1.00x 9.3% 50
orderBy relation + scalar 2.14ms ±0.049 1.55ms ±0.063 ~1.00x 14.7% 50
orderBy nullable relation 1.86ms ±0.034 1.19ms ±0.032 ~1.00x 9.9% 50
orderBy deep relation 3.12ms ±0.292 1.70ms ±0.037 1.83x *** 7.9% 50
orderBy deep relation + scalar 3.85ms ±0.423 2.68ms ±0.262 1.44x *** 35.2% 50
distinct status 10.83ms ±0.417 1.27ms ±0.041 8.56x *** 11.8% 50
distinct multi 17.93ms ±2.05 2.72ms ±0.125 6.59x *** 16.6% 50
cursor composite tuple 1.77ms ±0.052 1.31ms ±0.039 ~1.00x 10.6% 50
cursor composite desc 1.95ms ±0.065 1.82ms ±0.159 ~1.00x 31.4% 50
cursor prefix of orderBy 1.80ms ±0.058 1.31ms ±0.043 ~1.00x 11.8% 50
select + include 1.16ms ±0.070 0.766ms ±0.132 0.375ms ~1.00x 62.4% 50
_count relation 0.844ms ±0.034 0.671ms ±0.044 ~1.00x 23.9% 50
_count multi-relation 0.256ms ±0.013 0.174ms ±0.0097 ~1.00x 20.2% 50
_count inside include 1.32ms ±0.033 1.25ms ±0.051 ~1.00x 14.7% 50
_count inside nested select 2.25ms ±0.043 2.00ms ±0.078 ~1.00x 14.0% 50
_count deep include 2.05ms ±0.046 1.45ms ±0.077 ~1.00x 19.2% 50
ILIKE special chars 0.283ms ±0.015 0.224ms ±0.018 ~1.00x 28.6% 50
LIKE case sensitive 0.262ms ±0.028 0.190ms ±0.018 ~1.00x 34.6% 50
findMany Date range 0.404ms ±0.025 0.534ms ±0.019 0.603ms ~1.00x 13.0% 50
count Date range 0.524ms ±0.030 0.411ms ±0.019 0.451ms ~1.00x 16.8% 50
findMany Date gte 0.413ms ±0.027 0.208ms ±0.0086 0.276ms ~1.00x 14.7% 50
depth-1 low-fan 0.445ms ±0.017 0.265ms ±0.023 ~1.00x 31.4% 50
depth-1 mid-fan 2.76ms ±0.092 2.08ms ±0.080 ~1.00x 13.9% 50
depth-1 high-fan 2.38ms ±0.072 1.96ms ±0.059 ~1.00x 10.8% 50
depth-1 wide 2.22ms ±0.044 1.41ms ±0.044 ~1.00x 11.2% 50
depth-1 unbound 43.88ms ±0.708 10.39ms ±0.320 4.22x *** 11.1% 50
depth-2 5.04ms ±0.290 2.91ms ±0.177 1.73x *** 22.0% 50
depth-2 paginated Project→tasks 1.78ms ±0.188 1.87ms ±0.183 ~1.00x 35.4% 50
depth-2 high-fan 2.85ms ±0.113 1.30ms ±0.083 2.19x *** 22.9% 50
depth-2 wide 5.02ms ±0.246 1.94ms ±0.061 2.58x *** 11.3% 50
depth-2 unbound 66.25ms ±1.47 14.93ms ±0.817 4.44x *** 8.8% 10
depth-3 unbound 18.86ms ±4.30 5.90ms ±0.303 3.19x *** 18.5% 50
depth-3 paginated 2.07ms ±0.150 1.40ms ±0.104 ~1.00x 26.9% 50
depth-4 unbound 10.24ms ±0.442 4.34ms ±0.168 2.36x *** 14.0% 50
depth-4 paginated 2.46ms ±0.193 1.79ms ±0.249 ~1.00x 50.2% 50
findFirst depth-2 2.23ms ±0.079 1.71ms ±0.071 ~1.00x 15.0% 50
findUnique depth-2 Project→tasks→comment 2.37ms ±0.202 2.05ms ±0.135 ~1.00x 23.8% 50
complex nested select 3.56ms ±0.170 3.49ms ±0.440 ~1.00x 45.5% 50
ultra deep query 15.31ms ±0.248 6.71ms ±0.310 2.28x *** 16.7% 50
transaction: (3 operations) 2.79ms ±0.059 1.36ms ±0.025 2.05x *** 6.5% 50
*** p < 0.001 ** p < 0.01 *  p < 0.05 ns شماریاتی طور پر اہم نہیں  1ms شور کی حد کے اندر ± 95% اعتماد کا وقفہ CV% > 15% = زیادہ تغیر
رن ٹائم موڈ کا بینچ مارک کیا گیا۔ پری رینڈرڈ موڈ رن ٹائم پر کوئری سے SQL میں تبدیلی کو مکمل طور پر نظر انداز کرتا ہے — یہاں دکھائی گئی تاخیر سے کم تاخیر کی توقع کریں، خاص طور پر پیچیدہ کوئریز میں جہاں تبدیلی کی لاگت نسبتاً زیادہ ہوتی ہے۔

یہ Prisma کو کیسے optimize کرتی ہے

Prisma کی API اور types برقرار رکھتے ہوئے Prisma read execution path کو bypass کریں

1

Prisma queries intercept کریں

Extension read operations (findMany, findFirst, findUnique, count, aggregate, groupBy) کو execute ہونے سے پہلے پکڑتی ہے

2

Optimized SQL generate کریں

Prisma queries کو تیز، parameterized SQL میں convert کریں optimized JOINs کے ساتھ

3

Direct execute کریں

postgres.js یا better-sqlite3 کے ذریعے queries چلائیں، Prisma read overhead bypass کرتے ہوئے

4

Compatible results واپس کریں

Results Prisma کی expected shape سے match کرتے ہیں۔ Types، IntelliSense اور موجودہ query code تبدیل نہیں ہوتا

const users = await prisma.user.findMany({
  where: { status: 'ACTIVE' },
  include: { posts: true }
})

// Direct SQL execution for reads
// Benchmarked around ~1.00ms on this workload
// Same Prisma query code

یہ Prisma extension کیوں منتخب کریں؟

Reads کے لیے raw SQL execution کی رفتار حاصل کریں اور Prisma کا developer experience برقرار رکھیں

فوری Prisma speedup

One-time setup Prisma reads کو accelerate کرتا ہے۔ نہ refactoring، نہ migration، نہ downtime۔

اپنے Prisma types برقرار رکھیں

Full TypeScript support برقرار۔ Type inference، autocomplete اور compile-time safety محفوظ رہتے ہیں جبکہ reads تیز ہوتی ہیں۔

Production-tested solution

137 E2E tests حالیہ Prisma versions کے ساتھ compatibility validate کرتے ہیں۔ Production apps میں Prisma reads تیز کرنے کے لیے استعمال ہوتی ہے۔

Multiple database support

PostgreSQL (Neon، Supabase سمیت) اور SQLite پر Prisma reads optimize کریں۔

Pre-compiled option

Optional generator build-time SQL بناتا ہے، آپ کی hottest queries کے لیے overhead کو microseconds تک کم کرتا ہے۔

Serverless ready (Node runtimes)

Serverless Node runtimes میں کام کرتا ہے۔ Edge runtime support runtime constraints اور استعمال ہونے والے driver پر منحصر ہے۔

جہاں Prisma performance سب سے زیادہ اہم ہے

عام scenarios جہاں یہ extension واقعی فرق ڈالتی ہے

📊 Analytics اور Reporting

Prisma aggregations اور groupBy operations direct SQL execution سے خاصا فائدہ اٹھاتے ہیں

  • 5× تیز groupBy رپورٹس کو تیز کرتا ہے
  • Faster aggregate queries
  • کم latency کے ساتھ real-time metrics

🚀 High-traffic APIs

Load میں per-query overhead جمع ہوتا ہے، خاص طور پر read-heavy endpoints میں

  • کم API response times
  • ہر instance پر زیادہ requests handle کریں
  • Infrastructure costs کم کریں

☁️ Serverless functions

Serverless میں ہر millisecond اہم ہے: جہاں ضروری ہو وہاں read latency کم کریں

  • Reads پر بہتر p95/p99
  • تیز reads سے کم costs
  • Refactors کے بغیر تیز reads

📱 Mobile backends

Users latency محسوس کرتے ہیں: تیز reads فوری طور پر perceived UX بہتر کرتی ہیں

  • تیز feed loading
  • تیز pagination
  • زیادہ responsive interactions

3 مراحل میں Prisma optimize کریں

60 seconds سے کم میں Prisma reads accelerate کریں

① Prisma extension انسٹال کریں

# PostgreSQL
npm install prisma-sql postgres

# SQLite
npm install prisma-sql better-sqlite3

② Prisma Client میں extension شامل کریں

import { PrismaClient, Prisma } from '@prisma/client'
import { speedExtension, convertDMMFToModels } from 'prisma-sql'
import postgres from 'postgres'

const sql = postgres(process.env.DATABASE_URL)
const models = convertDMMFToModels(Prisma.dmmf.datamodel)

const prisma = new PrismaClient().$extends(
  speedExtension({ postgres: sql, models })
)

③ Prisma کو معمول کے مطابق استعمال کریں

const users = await prisma.user.findMany({
  where: { status: 'ACTIVE' },
  include: { posts: true }
})

Prisma Performance FAQ

Prisma reads optimize کرنے کے عام سوالات

Prisma میں overhead کیوں ہوتا ہے؟

Prisma overhead اس لیے بڑھاتا ہے کہ یہ schema-based validation، consistent query behavior اور result shaping جیسے API guarantees نافذ کرتا ہے۔ یہ layers developer experience بہتر بناتی ہیں مگر raw SQL براہِ راست execute کرنے کے مقابلے میں وقت لیتی ہیں۔

میں Prisma queries کو کیسے optimize کروں؟

Read-heavy Prisma workloads کو اس extension کے ذریعے optimize کریں۔ یہ reads کو postgres.js یا better-sqlite3 کے ذریعے direct SQL سے execute کرتی ہے جبکہ Prisma کی API اور types برقرار رہتے ہیں۔ Setup ایک چھوٹی initialization تبدیلی ہے اور موجودہ queries refactor کرنے کی ضرورت نہیں۔

کیا Prisma raw SQL سے سست ہے؟

کئی read workloads میں، ہاں۔ raw SQL execution کے مقابلے میں architectural overhead ہوتا ہے۔ یہ extension Prisma کا DX برقرار رکھتے ہوئے SQL direct execute کر کے read latency کم کرتی ہے۔

کیا میں موجودہ queries بدلے بغیر Prisma تیز کر سکتا ہوں؟

جی ہاں۔ Prisma Client initialization کے وقت ایک بار extension شامل کریں اور اپنا موجودہ Prisma query code unchanged رکھیں۔ Reads تیز چلیں گی جبکہ Prisma API، types اور schema وہی رہیں گے۔

کیا یہ production میں کام کرتا ہے؟

جی ہاں۔ یہ 137 E2E tests سے validate شدہ ہے اور production استعمال کے لیے ڈیزائن کیا گیا ہے۔ rollout سے پہلے اپنی Prisma version کے ساتھ compatibility verify کریں اور اپنے regression tests چلائیں۔

Prisma aggregations کیوں سست ہوتی ہیں؟

Aggregations اور groupBy اکثر fixed overhead (query processing اور result shaping) کو بڑھاتے ہیں اور بڑے intermediate result sets کی ضرورت ہو سکتی ہے۔ یہ extension SQL براہِ راست generate کر کے ان reads کو optimize کرتی ہے، جس سے aggregation-heavy endpoints میں عام طور پر latency کم ہوتی ہے۔

Prisma تیز کرنے کے لیے تیار؟

Prisma reads optimize کرنے والے developers میں شامل ہوں: 2–7× تیز (زیادہ سے زیادہ 53.5×)