Posts

Showing posts with the label database

How to Upgrade or Downgrade Heroku Postgres adon plan

Image
If you are using Heroku and Postgres adon in your project, by the time you may want to upgrade or downgrade Heroku Postgres adon plan based upon your project's database size decrease or increase with time. Although you can follow Heroku documentation for the purpose: Changing the Plan or Infrastructure of a Heroku Postgres Database But I wish to introduce you to another way to upgrade or downgrade the Heroku PostgreSQL Database adon plan. In this process we have 3 steps to follow: 1. Add additional Heroku Postgres adon with the desired plan (you want to switch) using the below command:      heroku addons:create heroku-postgresql:adon-plan --app your-appname Where `adon-plan` can be replaced with the desired plan from the plan list and `your-appname` with your application name. 2. Now copy your database from the old Postgres adon to the newly added Postgres adon.           heroku pg:copy HEROKU_POSTGRESQL_MAUVE_URL HEROKU_POSTGRESQL_PINK_URL ...

Differences between json and jsonb - JSON data type in PostgreSQL

You may have read differences between PostgreSQL datatypes JSON and JSONB. If not, let see the difference between both theoretically and practically. Although, both json and jsonb are types of PostgreSQL JSON datatypes and accepts almost same format as input values i.e. json. But still there are some difference which one must know to efficiently use or can choose from both json and jsonb.  The main different is how they actually store data; the json data type stores input value as it is but  jsonb stores value in a decomposed binary format which lead to difference in  efficiency .  Jsonb is slower as compare to json while saving the input values because of converting json values to binary format before saving. Jsonb fast in processing the data because no re-parsing needed as compare to json datatype which needs processing function to re-parsing on every execution. Few other differences between json and jsonb are: Jsonb supports indexing which is advantage over j...

LEAST() and GREATEST() - Postgres SQL Amazing But Rarely Known Functions .

PostgresSQL is very powerful and one of the world's most advanced open-source relational databases. It gives much more flexibility and customization on query level when you want to perform a complex operation or complex queries on the database. Postgresql provides multiple operators and functions which make even complex operations and complex queries pretty easy and simple. Similarly LEAST() and GREATEST() are functions that make your work very easy and simple. LEAST() and GREATEST() functions are very useful when you want to operate on different columns within the same row (a record) in a table. LEAST() and GREATEST() compare and find the minimum and maximum value respectively among given columns values in the same row. It's similar to finding a minimum or maximum value from an array of given values. Here are a few simple examples you can try: select LEAST(5, 3, 9, 2, 8, 1) and GREATEST(5, 3, 9, 2, 8, 1); //should give 1 and 9 respectively In-case of String or Varchar, it gi...

Important things every developer need to know about Database Indexing

Assuming you know the basics of Database and know the definition of indexes used in DB, here are some important things about Database indexes about which every good developer must aware of: DB Indexing is used to read data faster, but it makes writing slower. Indexes use in-memory data structures. Indexes use B-Tree (Balanced Tree) data structure to store data and use Binary search for reading/searching. It always saves corresponding DB internal row-id (not table PK) with every indexed node in the B-tree It is not good to add an index to each column of a table. If you have applied index on certain column but in query use any function on an indexed column, the index will not help at all. You can create a combined index on multiple columns. Order matters as per query need. To understand the use of indexes or to know if the query is actually taking the benefit of your index on your column use Explain. Explain give you the execution plan of the query. Explain give you info abou...