Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 634585
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T20:18:42+00:00 2026-05-13T20:18:42+00:00

I am going to start designing a web app shortly, and while I have

  • 0

I am going to start designing a web app shortly, and while I have lots of experience doing it in the SQL world, I have no idea what I need to take into consideration for doing so with the goal of migrating to GAE in the very near future.

Alternatively, I could design the app for GAE from the start, and so in that case, what are the differences I need to take into consideration? In other words, what are the DOs and DONTs of writing your app for GAE, coming from a relational databases past.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T20:18:42+00:00Added an answer on May 13, 2026 at 8:18 pm

    Just out of top of my head:

    • It’s really ONLY a key->value store, don’t be fooled by things like GQL (which is just a subset of SQL SELECT)
    • No JOINs – often you have to denormalize or forget
    • More or less frequent timeouts
    • (Very) slow access comparing to local SQL base.
    • COUNT very expensive
    • OFFSET (in SELECT) implemented on client side – so in fact you fetch all records up to offset – as pointed by Nick Johnson in one of the comments, it’s not client side, so now, as LIMIT of 1000 is gone it’s similar to SQL databases.
    • (Recently removed) LIMIT of 1000 fetched rows
    • SELECT performance decreases drastically with increasing number of returned rows
    • Migrations are hard to do because you have to do them using normal http requests and each request is killed after 30 secs. You have to resort to task queues that process rows in batches
    • There are pseudo foreign keys – called ReferenceProperties in Python API – but they are not enforced in any way – if someone/something delete target object then you have what is know as dangling pointer in C++
    • Fields that you use for queries have to be indexed, but still using key (sort of primary key for each row/instance) makes your queries run faster
    • Building indexes on live instance can take a lot of time (and you can’t decrease it) and without them your app often can’t work. Beer and patience highly recommended..
    • A LOT of artificial limits (like the already removed max LIMIT of 1000). E.g. GQL ‘IN’ operator is just syntactic sugar for multiple OR-s, and there is upper limit of 30 values used.

    All that means that you probably can’t avoid exposing inconsistent state to user, and almost for sure you cannot avoid having inconsistent state of your data (e.g. half rows migrated and half not, during manual JOIN data changes etc)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Hi We are going to start a CRUD project. I have some experience using
If you are going to start the development of an API for your web
I'm going to start of by noting that I have next to no python
I'm in the preliminary stages of designing a new web application, and have yet
Just going to start making a web application and was wondering which was better,
We are going to start a very small web development project. The team has
i am going to start a speech to text app in iphone and i
I'm going to start a new project - rewriting an existing system (PHP +
If I was going to start an open source project using Python what version
I'm going to start maintaining an Eclipse RCP application for my current employer soon.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.