More SQL Antipatterns
close menu
Bookswagon
search
My Account
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Home > Computing and Information Technology Books > Databases > Database design and theory > Relational databases > More SQL Antipatterns: Avoid Common but Deadly Mistakes of Database Optimization
More SQL Antipatterns: Avoid Common but Deadly Mistakes of Database Optimization

More SQL Antipatterns: Avoid Common but Deadly Mistakes of Database Optimization


     0     
5
4
3
2
1



Out of Stock


Notify me when this book is in stock
X
About the Book

Don't make the mistakes most people make when optimizing your database.


It's easy to get something working with SQL but getting it working well requires skill and experience. Rather than learning by trial and error, let renowned database expert Bill Karwin give you the benefit of his years of experience as he shows you the mistakes people make and how to fix them.


Dig into SQL language issues rarely covered in other books. Learn advanced queries such as relational division, efficient pagination, and pivoting. Explore tradeoffs in optimization, including denormalization, JSON, and choosing SQL versus NoSQL. Turn mistakes into successes by employing SQL in application design: transactions, polling, and object-relational mapping. Finally, take a deep dive into scaling out with sharded databases.


This book contains fourteen all-new topics, making it a valuable complement to SQL Antipatterns Volume 1. In each chapter, you'll learn how to recognize one type of common pitfall, and how to solve it. Examples use the current popular combination of PostgreSQL and Python, but the principles apply to any modern database and language. Like the first volume, this book also includes a selection of mini-antipatterns, or brief tips you can use for quick wins.


Optimize SQL the right way and graduate from journeyman to senior database developer.



Table of Contents:
  • SQL Language Antipatterns
    • Fear of JOINs
      • Objective: Combining Matching Data in Two Tables
      • Antipattern: Fearing JOINs
      • How to Recognize the Antipattern
      • Legitimate Uses of the Antipattern
      • Solution: Preferring JOINs
      • Mini-Antipattern: Comma-Style Join Syntax
      • Mini-Antipattern: NATURAL JOIN
    • Relational Division
      • Objective: Matching a List of Values
      • Antipattern: Searching Multiple Rows in a WHERE Clause
      • How to Recognize the Antipattern
      • Legitimate Uses of the Antipattern
      • Solution: Using Relational Division
      • Mini-Antipattern: Aggregation Functions in the WHERE Clause
    • Dynamic Pivot
      • Objective: Turning the Table
      • Antipattern: Using a Single Query
      • How to Recognize the Antipattern
      • Legitimate Uses of the Antipattern
      • Solution: Using Code to Assist
      • Mini-Antipattern: Operand Must Contain One Column
    • Pagination: Take It from the Top
      • Objective: Presenting Query Results in Pages
      • Antipattern: Mistaking Offset for Optimization
      • How to Recognize the Antipattern
      • Legitimate Uses of the Antipattern
      • Solution: Changing the Rules
      • Mini-Antipattern: LIMIT without ORDER BY
  • Optimization Antipatterns
    • Non-Sargable Queries
      • Objective: Optimizing Complex Queries
      • Antipattern: Using Queries That Can’t Be Optimized
      • How to Recognize the Antipattern
      • Legitimate Uses of the Antipattern
      • Solution: Refactoring the Query
      • Mini-Antipattern: Redundant Indexes
    • Premature Denormalization
      • Objective: Breaking the Rules to Improve Performance
      • Antipattern: Breaking the Rules Recklessly
      • How to Recognize the Antipattern
      • Legitimate Uses of the Antipattern
      • Solution: Breaking the Rules Carefully
      • Mini-Antipattern: Query Snipers
    • NoSQL: The Grass Is Always Greener on the Other Side
      • Objective: Relief from the Challenges of SQL
      • Antipattern: Switching to NoSQL Is Easy
      • How to Recognize the Antipattern
      • Legitimate Uses of the Antipattern
      • Solution: Match Your Queries to Your NoSQL Models
      • Mini-Antipattern: N+1 Queries
    • JSON: Matryoshka Dolls
      • Objective: Unlimited Flexibility
      • Antipattern: Semi-Structured Data in a Relational Database
      • How to Recognize the Antipattern
      • Legitimate Uses of the Antipattern
      • Solution: Be Mindful and Moderate About Flexibility
      • Mini-Antipattern: Quotes for All Occasions
    • Cacheless Transactions
      • Objective: A Magic Trick to Improve Performance
      • Antipattern: The Performance Vanishing Act
      • How to Recognize the Antipattern
      • Legitimate Uses of the Antipattern
      • Solution: Use Sleight of Hand
      • Mini-Antipattern: Query Caching
  • Application Design Antipatterns
    • Polling: Are We There Yet?
      • Objective: Notify of Changes to Data
      • Antipattern: Polling for Changes
      • How to Recognize the Antipattern
      • Legitimate Uses of the Antipattern
      • Solution: Just Wake Me Up When We Get There
      • Mini-Antipattern: Enqueuing Before Committing
    • Transaction Encapsulation
      • Objective: Transactions for Multiple Models
      • Antipattern: Every Model Class Manages Its Transactions
      • How to Recognize the Antipattern
      • Legitimate Uses of the Antipattern
      • Solution: Simplify, Simplify
      • Mini-Antipattern: ORMs that Pluralize Table Names
    • Fear of Deadlocks
      • Objective: Don’t See Deadlock Errors
      • Antipattern: Trying to Prevent All Deadlocks
      • How to Recognize the Antipattern
      • Legitimate Uses of the Antipattern
      • Solution: Mitigate Deadlocks
      • Mini-Antipattern: Sharing Connections Between Threads
    • Data Hoarding
      • Objective: Cope with Data Bloat
      • Antipattern: The Belief That You Need All Data
      • How to Recognize the Antipattern
      • Legitimate Uses of the Antipattern
      • Solution: An Intervention to Manage Data Retention


About the Author :

Bill Karwin has been a software engineer for more than 30 years, developing and supporting applications, libraries, and servers, and consulting for leading technology companies. Throughout his career, Bill has shared his knowledge to help other programmers achieve success and productivity. Bill has answered thousands of questions, giving him a unique perspective on SQL mistakes that most commonly cause problems.


Best Sellers


Product Details
  • ISBN-13: 9798888652060
  • Publisher: The Pragmatic Programmers
  • Publisher Imprint: The Pragmatic Programmers
  • Height: 234 mm
  • No of Pages: 220
  • Returnable: Y
  • Spine Width: 12 mm
  • Width: 190 mm
  • ISBN-10: 888865206X
  • Publisher Date: 14 Jul 2026
  • Binding: Paperback
  • Language: English
  • Returnable: Y
  • Returnable: Y
  • Sub Title: Avoid Common but Deadly Mistakes of Database Optimization


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
More SQL Antipatterns: Avoid Common but Deadly Mistakes of Database Optimization
The Pragmatic Programmers -
More SQL Antipatterns: Avoid Common but Deadly Mistakes of Database Optimization
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

More SQL Antipatterns: Avoid Common but Deadly Mistakes of Database Optimization

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!