Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

ฐานข้อมูลที่ดีที่สุดสำหรับ Next.js

Next.js ช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันแบบเต็มสแต็กด้วยความสามารถในการแสดงผลฝั่งเซิร์ฟเวอร์ Vercel และ Netlify ช่วยให้พวกเขาเขียน API แบ็กเอนด์ด้วยฟังก์ชันแบบไร้เซิร์ฟเวอร์ คำถามต่อไปคือฐานข้อมูลในอุดมคติสำหรับแอป Next.js คืออะไร ในโพสต์นี้ ฉันจะตรวจสอบฐานข้อมูลที่ได้รับความนิยมในหมู่ชุมชน Next.js ฉันจะแสดงความคิดเห็นว่าพวกเขาเหมาะสมกับโมเดลแบบไร้เซิร์ฟเวอร์อย่างไร สองสิ่งที่ต้องตรวจสอบ:

  • การกำหนดราคาแบบไร้เซิร์ฟเวอร์:ราคาเป็นแบบจ่ายต่อการใช้งานหรือไม่ เมื่อฐานข้อมูลไม่ได้ใช้งาน คุณยังต้องจ่ายหรือไม่
  • การเชื่อมต่อแบบไร้เซิร์ฟเวอร์:มีการรองรับการเชื่อมต่อแบบ HTTP หรือไม่ ดังนั้นจึงไม่ควรมีปัญหาในการเชื่อมต่อซึ่งมักเกิดขึ้นกับฟังก์ชันแบบไร้เซิร์ฟเวอร์

TLDR

ฉันได้ตรวจสอบ PlanetScale, Supabase, Upstash, Fauna, DynamoDB และ MongoDB Atlas แล้ว ตรวจสอบตารางด้านล่างเพื่อเปรียบเทียบชุดคุณลักษณะของแต่ละผลิตภัณฑ์

คุณลักษณะ PlanetScale สุภาเบส อัพสเตช สัตว์ DynamoDB แผนที่ MongoDB
API MySQL PostgreSQL รีดิส สัตว์ DynamoDB MongoDB
ประเภท เชิงสัมพันธ์ เชิงสัมพันธ์ KV Store เอกสาร เอกสาร เอกสาร
ฟรีเทียร์ 🟢 🟢 🟢 🟢 🟢 🟢
การกำหนดราคาแบบไร้เซิร์ฟเวอร์ 🟡 (ขั้นต่ำ $29) 🟡 (ขั้นต่ำ $25) 🟢 🟡 (ขั้นต่ำ $22.5) 🟢 🟢
REST API 🔴 🟢 🟢 🟢 🟢 🟢
GraphQL API 🔴 🔴 🔴 🟢 🔴 🔴
การจำลองแบบทั่วโลก 🔴 🔴 🟢 🟢 🟢 🟡 (เฉพาะรุ่นเท่านั้น)
การแยกฐานข้อมูล 🟢 🔴 🔴 🔴 🔴 🔴
อัพเดตเรียลไทม์ 🔴 🟢 🔴 🔴 🟢 🟡 (ผ่านอาณาจักร)
อ่านราคา $1.5 / 10m $0.09 / GB $0.2 / 100K $0.45 / 1m (4KB) $0.25 / 1m (2KB) $0.3 / 1m (4KB)
เขียนราคา $1.5 / 1m $0.09 / GB $0.2 / 100K $2.25 / 1m (1KB) $1.25 / 1m (1KB) $1.25 / 1m (1KB)
การจัดเก็บราคา $1.25 / GB 0.125 เหรียญ / GB $0.25 / GB $0.23 / GB $0.25 / GB $0.25 / GB

PlanetScale

  • PlanetScale เป็นฐานข้อมูลที่เข้ากันได้กับ MySQL ในฐานะบริการ
  • ใช้ Vitess เป็นพื้นหลัง สิ่งนี้ยอดเยี่ยมเพราะ Vitess กำลังถูกใช้งานโดยยักษ์ใหญ่อย่าง Youtube
  • PlanetScale แนะนำแนวคิดการแยกฐานข้อมูล คุณสามารถสร้างสาขาและรวมการเปลี่ยนแปลงสกีมาเข้ากับฐานข้อมูลที่ใช้งานจริงได้เช่นเดียวกับ git Afaik คุณลักษณะนี้มีเฉพาะใน PlanetScale
  • มีระดับฟรีพร้อมการอ่าน 100m ต่อเดือน
  • แผนการชำระเงินเริ่มต้นที่ $29 ส่วนประกอบราคาหลักสำหรับแผนชำระเงินคือ:
    • พื้นที่เก็บข้อมูล/เดือน:$1.25/GB หลังจาก 25GB แรก
    • การอ่าน/เดือน:$1.50 ต่อ 10m หลังจาก 500m แรก
    • เขียน/เดือน:$1.50 ต่อ 1m หลังจาก 50m แรก
  • PlanetScale ไม่มี API ที่ใช้ HTTP/REST

ฐานข้อมูลที่ดีที่สุดสำหรับ Next.js

ความคิดเห็นของฉัน:

  • ในโฮมเพจ มีการกล่าวว่า Trusted By Github, Square, Slack เป็นต้น บริษัทเหล่านี้ใช้ PlanetScale หรือ Vitess หรือไม่ หากบริษัทเหล่านี้ใช้ PlanetScale ก็ถือว่ายอดเยี่ยม ไม่อย่างนั้นฉันไม่รู้สึกดีกับการตลาดแบบนี้ Trusting Vitess และ Trusting PlanetScale เป็นสิ่งที่แตกต่างกัน
  • PlanetScale ต้องการให้คุณใช้การเชื่อมต่อแบบ TCP (การเชื่อมต่อ MySQL) นี่อาจเป็นปัญหาสำหรับฟังก์ชันไร้เซิร์ฟเวอร์เนื่องจากไม่มีสถานะ พวกเขากล่าวว่าจำนวนการเชื่อมต่อไม่ใช่ปัญหาสำหรับ Vitess แต่ก็ยังมีขีดจำกัดการเชื่อมต่อสูงสุดสำหรับแผนต่างๆ
  • การขาด HTTP/REST API ทำให้ไม่สามารถใช้ PlanetScale จาก Cloudflare Workers และแพลตฟอร์ม Vercel Edge ได้ เนื่องจากไม่อนุญาตการเชื่อมต่อ TCP
  • แผนชำระเงิน Planetscale เริ่มต้นที่ $29 ดังนั้นราคาจะไม่ปรับเป็นศูนย์ แม้ว่าคุณจะไม่ได้ใช้ DB คุณต้องใช้ $29 ต่อ db เป็นอย่างน้อย ฉันคิดว่านี่เป็นข้อขัดแย้งกับคำจำกัดความของ serverless .
  • ราคาโดยละเอียด
  • กวดวิชาการใช้ Planetscale กับ Next.js และ Prisma
  • วิดีโอสอนที่ใช้ Planetscale และ Next.js จากนั้นปรับใช้กับ Vercel
  • Hackernews แสดงความคิดเห็นเกี่ยวกับการเปิดตัว PlaneScale

สุภาเบส

  • Supabase คือชุดเครื่องมือสำหรับนักพัฒนาซึ่งรวมถึงฐานข้อมูล บริการตรวจสอบสิทธิ์ ที่เก็บข้อมูล พวกเขาเรียกตัวเองว่า Open Source Firebase Alternative
  • Supabase ให้บริการฐานข้อมูล PostgreSQL
  • เช่นเดียวกับ Firebase Supabase ช่วยให้นักพัฒนารับฟังการเปลี่ยนแปลงในฐานข้อมูลแบบเรียลไทม์
  • Supabase จัดเตรียม RESTful API โดยใช้ PostgREST สิ่งนี้มีประโยชน์โดยเฉพาะอย่างยิ่งหากคุณวางแผนที่จะใช้ Supabase ในฟังก์ชันแบบไร้เซิร์ฟเวอร์
  • Supabase สามารถใช้ได้ใน Cloudflare Workers ด้วย REST API ตรวจสอบสิ่งนี้
  • Supabase Free Tier จำกัดไว้ที่พื้นที่เก็บข้อมูล 500MB และโอนข้อมูล 2GB ต่อเดือน
  • คล้ายกับ PlanetScale Supabase มีค่าใช้จ่ายขั้นต่ำสำหรับฐานข้อมูลแบบชำระเงินซึ่งอยู่ที่ $25/เดือน สรุปราคา payg:
    • พื้นที่เก็บข้อมูล:0.125 เหรียญสหรัฐต่อ GB ต่อเดือน
    • การถ่ายโอนข้อมูล:$0.09 ต่อ GB

ฐานข้อมูลที่ดีที่สุดสำหรับ Next.js

ความคิดเห็นของฉัน:

  • Supabase ให้บริการฐานข้อมูล บริการตรวจสอบสิทธิ์ พื้นที่จัดเก็บอ็อบเจ็กต์ และ serverless functions กำลังมา. ฉันกังวลว่าการเริ่มต้นให้บริการที่มีคุณภาพสูงและแข่งขันกับ Firebase ที่ Google สนับสนุนอาจเป็นเรื่องยาก ฉันหวังว่าพวกเขาจะประสบความสำเร็จ
  • เช่นเดียวกับ PlanetScale ฉันคิดว่าราคาของพวกเขาไม่ใช่แบบไร้เซิร์ฟเวอร์อย่างแท้จริง แผนการชำระเงินของพวกเขาต้องการค่าใช้จ่ายรายเดือนคงที่ ดังนั้นจึงไม่ลดขนาดเป็นศูนย์
  • ราคาโดยละเอียด
  • เริ่มต้นใช้งาน Next.js
  • วิดีโอ:Supabase Crash Course
  • วิดีโอสอน:Supabase พร้อม Next.js

อัพสแตชเรดิส

  • Upstash ให้บริการ Redis เป็นราคาต่อคำขอ
  • มีทั้ง Redis และ REST API คุณจึงใช้งานได้ทั้งแบบไร้เซิร์ฟเวอร์และฟังก์ชัน Edge (Cloudflare Workers)
  • Upstash มีตัวเลือกระดับภูมิภาคและระดับโลก ฐานข้อมูลทั่วโลกจำลองข้อมูลไปยังหลายภูมิภาค
  • มีระดับฟรีที่มีคำสั่งสูงสุด 10,000 คำสั่งต่อวัน การกำหนดราคาแบบจ่ายตามที่คุณกำหนดมีดังนี้:
    • คำสั่ง:$0.2 ต่อ 100,000 คำสั่ง
    • พื้นที่เก็บข้อมูล:$0.25 ต่อ GB

ฐานข้อมูลที่ดีที่สุดสำหรับ Next.js

ความคิดเห็นของฉัน:

  • ทั้งเรา (Upstash) และ RedisLabs คิดว่า Redis นั้นทรงพลังเพียงพอสำหรับกรณีการใช้งานจำนวนมาก นอกเหนือจากกรณีการใช้งาน Redis แบบคลาสสิก (การแคช, kv-store) แต่ฉันก็ยังเห็นนักพัฒนาหลายคนชอบฐานข้อมูล SQL เป็นที่เก็บข้อมูลหลัก หากคุณต้องการความสามารถในการสืบค้นที่ซับซ้อน Redis อาจไม่ใช่ตัวเลือกแรกของคุณ
  • ราคาโดยละเอียด
  • เริ่มต้นใช้งาน Next.js และ Redis
  • เริ่มต้นใช้งาน Next.js Edge Functions
  • วิดีโอ:การใช้ Redis แบบไร้เซิร์ฟเวอร์กับ Next.js

สัตว์

  • Fauna ให้บริการฐานข้อมูลที่จำลองแบบจากทั่วโลกซึ่งมีความสอดคล้องอย่างยิ่งในฐานะบริการคลาวด์
  • มี GraphQL API นอกเหนือจาก Fauna API
  • การเชื่อมต่อเป็นแบบ HTTP คุณจึงใช้ Fauna ในฟังก์ชันแบบไร้เซิร์ฟเวอร์ได้โดยไม่มีปัญหาเกี่ยวกับการเชื่อมต่อ
  • แผนพื้นฐานที่สุด (รายบุคคล) เริ่มต้นที่ $22.5/เดือน
  • ราคาสัตว์:
    • อ่าน:$0.45/ล้านหน่วย (4KB)
    • เขียน:$2.25/ล้านหน่วย (1KB)
    • พื้นที่เก็บข้อมูล:$0.23/GB

ฐานข้อมูลที่ดีที่สุดสำหรับ Next.js

ความคิดเห็นของฉัน:

  • ความสม่ำเสมอที่แข็งแกร่งระดับโลกมาพร้อมกับต้นทุนด้านประสิทธิภาพที่เพิ่มขึ้น การเขียนมีเวลาแฝงที่สูงกว่าฐานข้อมูลทางเลือกอื่นๆ
  • หากคุณจะใช้ GraphQL ก็ถือว่าดีมาก แต่อย่างอื่น FQL นั้นยากสำหรับฉันที่จะเรียนรู้และใช้งาน
  • การกำหนดราคาสัตว์มีหน่วยเป็นของตัวเอง (TRO, TWO, TCO) และมีหลายขนาด คุณต้องอ่านบทความเพื่อทำความเข้าใจราคา
  • หน้าราคา
  • การใช้ Next.js กับ Fauna
  • วิดีโอ:การใช้ Next.js กับ Fauna

แผนที่ MongoDB

  • Atlas เป็น MongoDB เป็นบริการที่มีการจัดการซึ่งมีแผนแบบไร้เซิร์ฟเวอร์ แชร์และทุ่มเท..
  • ข้อมูล (REST) ​​API ได้รับการประกาศเมื่อเร็วๆ นี้ ซึ่งช่วยให้คุณเข้าถึงฐานข้อมูลของคุณโดยใช้ HTTP
  • MongoDB Atlas มีแผน Serverless โดยมีข้อจำกัดบางประการ ราคาของแผนนี้เป็นราคาต่อการดำเนินการ ดังนั้นจึงปรับขนาดเป็นศูนย์ตามที่คาดไว้จากผลิตภัณฑ์แบบไร้เซิร์ฟเวอร์
  • การจำลองแบบหลายภูมิภาคใช้ได้กับแผนเฉพาะเท่านั้น
  • การกำหนดราคาแบบไร้เซิร์ฟเวอร์:
    • การอ่าน:$0.30 ต่อล้านหน่วย (4KB)
    • เขียน:$1.25 ต่อล้านหน่วย (1KB)
    • พื้นที่เก็บข้อมูล:0.25 เหรียญ/GB ต่อเดือน

ฐานข้อมูลที่ดีที่สุดสำหรับ Next.js

ความคิดเห็นของฉัน:

  • Serverless Plan และ Data API บอกเราว่า MongoDB Atlas ไม่ได้เพิกเฉยต่อพื้นที่ Serverless แต่โซลูชันทั้งสองอยู่ในระยะแสดงตัวอย่างและจำเป็นต้องได้รับการปรับปรุงเพื่อให้เป็นโซลูชันข้อมูลที่เหมาะสำหรับแอปพลิเคชันแบบไร้เซิร์ฟเวอร์
  • หน้าราคา
  • วิธีผสานรวม MongoDB เข้ากับแอป Next.js
  • วิดีโอ:การรวม MongoDB เข้ากับแอป NextJS ของคุณ

DynamoDB

  • จัดการฐานข้อมูล NoSQL อย่างเต็มรูปแบบด้วยคีย์-ค่าและโมเดลข้อมูลเอกสาร
  • การเชื่อมต่อเป็นแบบ HTTP ดังนั้นจึงเหมาะกับแอปพลิเคชันแบบไร้เซิร์ฟเวอร์
  • ราคาเป็นราคาต่อการดำเนินการนอกเหนือจากค่าใช้จ่ายในการถ่ายโอนข้อมูล มันจึงปรับขนาดเป็นศูนย์
  • โดยค่าเริ่มต้น การอ่านจะมีความสอดคล้องกันในที่สุด คุณยังขออ่านได้อย่างสม่ำเสมอ แต่มีข้อจำกัดบางอย่าง
  • คุณสามารถเปิดใช้งานการจำลองแบบหลายภูมิภาคโดยมีค่าใช้จ่ายเพิ่มเติม
  • ราคา:
    • การอ่าน:$0.25 ต่อหน่วยคำขออ่านหนึ่งล้านหน่วย (2KB)
    • เขียน:$1.25 ต่อล้านหน่วยคำขออ่าน (1KB)
    • การถ่ายโอนข้อมูล (ออก):$0.09 ต่อ GB
    • พื้นที่เก็บข้อมูล:$0.25 ต่อ GB ต่อเดือน

ฐานข้อมูลที่ดีที่สุดสำหรับ Next.js

ความคิดเห็นของฉัน:

  • สำหรับฉัน DynamoDB API ไม่ได้ใช้งานง่ายเหมือน Redis หรือ MongoDB
  • มีปัญหาการล็อคอินของผู้ขาย DynamoDB อยู่ที่ AWS เท่านั้น และคุณไม่สามารถย้ายแอปพลิเคชันของคุณไปยังผู้ให้บริการรายอื่นโดยไม่เปลี่ยนรหัส
  • หน้าราคา
  • ตัวอย่างแอป:Next.js กับ DynamoDB
  • หลักสูตรวิดีโอ:Next.js พร้อม DynamoDB

บทสรุป

แล้วฐานข้อมูลที่ดีที่สุดสำหรับ Next.js คืออะไร? ตามที่คาดไว้ไม่มีคำตอบเดียว แต่ให้คำตอบแบบมีเงื่อนไข:

  • หากคุณต้องการฐานข้อมูลเชิงสัมพันธ์ 👉🏻 Supabase หรือ PlanetScale
  • หากคุณต้องการแยกฐานข้อมูล 👉🏻 PlanetScale
  • หากคุณต้องการอัปเดตตามเวลาจริง 👉🏻 Supabase หรือ MongoDB Atlas
  • หากคุณต้องการเวลาแฝงต่ำทั่วโลก 👉🏻 Upstash หรือ DynamoDB
  • ถ้าคุณต้องการความสม่ำเสมอที่แข็งแกร่งระดับโลก 👉🏻 สัตว์
  • หากคุณต้องการเก็บค่าคีย์เวลาแฝงต่ำ 👉🏻 อัพสแตช
  • ถ้าคุณรัก PostgreSQL 👉🏻 Supabase
  • ถ้าคุณรัก MySQL 👉🏻 PlanetScale
  • ถ้าคุณรัก Redis 👉🏻 Upstash
  • ถ้าคุณรัก Mongo 👉🏻 MongoDB Atlas
  • หากคุณต้องการ GraphQL 👉🏻 Fauna

ฉันพยายามที่จะยุติธรรมและถูกต้อง หากคุณคิดว่ามีอะไรต้องแก้ไข โปรดส่งความคิดเห็นของคุณไปที่ twitter ของฉัน