ByteByteGo Newsletter

Share this post

EP50: Visualizing a SQL Query

blog.bytebytego.com

EP50: Visualizing a SQL Query

Alex Xu
Mar 11
121
6
Share this post

EP50: Visualizing a SQL Query

blog.bytebytego.com

This week’s system design refresher:

  • Cloud-native vs. Cloud computing (Youtube video)

  • Visualizing a SQL query

  • Evolution of programming languages

  • Linux Storage Stack Diagram

  • Job openings


The most useful engineering conversation you’ll hear each week (Sponsored)

Dev Interrupted is the No. 1 source for what the smartest minds in development are thinking about, investing in & working on. 

Hear career-changing wisdom by leaders from companies like Slack, Stripe, and Shopify delivered to your inbox every week. These are insights you can’t Google.

Learn more


Cloud-native vs. Cloud computing


Visualizing a SQL query

SQL statements are executed by the database system in several steps, including:

  • Parsing the SQL statement and checking its validity

  • Transforming the SQL into an internal representation, such as relational algebra

  • Optimizing the internal representation and creating an execution plan that utilizes index information

  • Executing the plan and returning the results

The execution of SQL is highly complex and involves many considerations, such as:

  • The use of indexes and caches

  • The order of table joins

  • Concurrency control

  • Transaction management

Over to you: what is your favorite SQL statement?


Evolution of programming languages

C, C++, Java, Javascript, Typescript, Golang, Rust…

How do programming languages evolve over the past 70 years?

The diagram below shows a brief history of programming languages.

  • Perforated cards were the first generation of programming languages. Assembly languages, which are machine-oriented, are the second generation of programming language. Third-generation languages, which are human-oriented, have been around since 1957.

  • Early languages like Fortran and LISP proposed garbage collection, recursion, exceptions. These features still exist in modern programming languages.

  • In 1972, two influential languages were born: Smalltalk and C. Smalltalk greatly influenced scripting languages and client-side languages. C language was developed for unix programming.

  • In the 1980s, object-oriented languages became popular because of its advantage in graphic user interfaces. Object-C and C++ are two famous ones.

  • In the 1990s, the PCs became cheaper. The programming languages at this stage emphasized on security and simplicity. Python was born in this decade. It was easy to learn and extend and it quickly gained popularity. In 1995, Java, Javascript, PHP and Ruby were born.

  • In 2000, C# was released by Microsoft. Although it was bundled with .NET framework, this language carried a lot of advanced features.

  • A number of languages were developed in the 2010s to improve C++ or Java. In the C++ family, we have D, Rust, Zig and most recently Carbon. In the Java family, we have Golang and Kotlin. The use of Flutter made Dart popular, and Typescript was developed to be fully compatible with Javascript. Also, Apple finally released Swift to replace Object-C.

Over to you: What’s your favorite language and why? Will AI change the way we use programming languages?


The Linux Storage Stack Diagram shows the layout of the Linux storage stack.

Diagram by Thomas-Krenn.


💼 Join the ByteByteGo Talent Collective

If you’re looking for a new gig, join the collective for customized job offerings from selected companies. Public or anonymous options are available. Leave anytime.

If you’re hiring, join the ByteByteGo Talent Collective to start getting bi-monthly drops of world-class hand-curated engineers who are open to new opportunities.

Featured job openings

X1 Card: Software Engineer, Back End (United States)
X1 Card: Head of Infrastructure and Risk (United States)

6
Share this post

EP50: Visualizing a SQL Query

blog.bytebytego.com
6 Comments
Ivan Huang
Writes The Software & Data Spectrum
Mar 11Liked by Alex Xu

Having this diagram makes it so easy to understand

Expand full comment
Reply
Avery Si
Mar 12Liked by Alex Xu

Very well put diagrams. Love this visualization

Expand full comment
Reply
4 more comments…
TopNewCommunity

No posts

Ready for more?

© 2023 ByteByteGo
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing