Articles

CockroachDB TIL : Vol. 12

Découvrez le dernier volume de CockroachDB TIL ! Apprenez-en plus sur les fonctionnalités et les améliorations de CockroachDB pour vous aider à développer des applications plus robustes.

Articles précédents

Volumes 1 à 11

Sujets

Le volume 1 à 11 de cet article traite de différents sujets liés au logiciel. Dans ce volume, nous allons examiner le sujet n°1 : Identifier les index partiels. Notre équipe d’ingénieurs a publié un avis technique #96924 indiquant que certains changements de schéma, tels que la suppression de colonnes référencées dans des index partiels, échoueront. Un client demande comment identifier les bases de données, les tables et les index partiels associés qui référencent les colonnes à supprimer. Les méthodes suivantes vont aider à trouver ces index indésirables.

En considérant une table avec les données suivantes :

Table: customers

Columns: id, name, address

Indexes:

CREATE INDEX customers_name_idx ON customers (name) WHERE address IS NOT NULL;

CREATE INDEX customers_address_idx ON customers (address) WHERE name IS NOT NULL;

La première méthode consiste à exécuter une requête SQL pour obtenir les informations sur les index partiels. La requête suivante peut être utilisée pour obtenir les informations sur les index partiels pour la table « customers » :

SELECT * FROM pg_indexes WHERE indpred IS NOT NULL AND tablename = ‘customers’;

Cette requête renvoie les informations sur les index partiels pour la table « customers ». Le résultat de cette requête est le suivant :

indexname | tablename | indpred

———-+———–+———

customers_name_idx | customers | (address IS NOT NULL)

customers_address_idx | customers | (name IS NOT NULL)

La deuxième méthode consiste à utiliser un outil logiciel pour identifier les index partiels. Il existe plusieurs outils logiciels qui peuvent être utilisés pour identifier les index partiels. Certains des outils logiciels populaires sont pg_indexes, pg_stat_user_indexes et pg_stat_all_indexes. Ces outils peuvent être utilisés pour obtenir des informations détaillées sur les index partiels d’une base de données. Ces outils peuvent également être utilisés pour obtenir des informations sur les index partiels pour une table spécifique.

Enfin, la troisième méthode consiste à utiliser le fichier de configuration du serveur PostgreSQL pour identifier les index partiels. Le fichier de configuration du serveur PostgreSQL contient des informations détaillées sur les index partiels. Ces informations peuvent être utilisées pour identifier les index partiels pour une base de données ou une table spécifique.

En conclusion, il existe plusieurs méthodes pour identifier les index partiels dans une base de données PostgreSQL. Ces méthodes peuvent être utilisées pour obtenir des informations détaillées sur les index partiels d’une base de données ou d’une table spécifique. Ces méthodes peuvent également être utilisées pour identifier les index partiels qui référencent des colonnes à supprimer.

Source de l’article sur DZONE

Principaux enseignements sur les Index PostgreSQL

Les Index sont une méthode très utile pour améliorer les performances d’une base de données. Ils sont principalement utilisés pour accélérer les requêtes et les recherches dans une base de données. Les Index sont des structures de données qui contiennent des informations sur les données stockées dans la base de données. Ils sont créés pour améliorer la vitesse de recherche et de récupération des données. Les Index peuvent être créés sur une ou plusieurs colonnes d’une table, ce qui permet au serveur de base de données de trouver et récupérer des lignes spécifiques beaucoup plus rapidement qu’il ne pourrait le faire sans Index.

Les Index peuvent être créés manuellement ou automatiquement par le système de base de données. La plupart des systèmes de base de données modernes, tels que PostgreSQL, offrent une variété d’options pour créer des Index. Les Index peuvent être créés sur une seule colonne ou sur plusieurs colonnes. Les Index peuvent également être créés sur des colonnes qui contiennent des valeurs uniques (par exemple, une clé primaire) ou sur des colonnes qui contiennent des valeurs répétitives (par exemple, une colonne qui contient le nom d’un client). Les Index peuvent également être créés sur des colonnes qui contiennent des valeurs NULL.

Les Index sont une méthode très utile pour améliorer les performances d’une base de données, mais il est important de se rappeler qu’ils doivent être utilisés de manière sensée. Les Index ajoutent un surcoût au système de base de données dans son ensemble, car ils doivent être maintenus et mis à jour lorsque les données sont modifiées. Il est important de prendre le temps de réfléchir à la façon dont les Index peuvent être utilisés pour améliorer les performances et à la façon dont ils peuvent être maintenus et mis à jour. Une fois que vous avez décidé quels Index créer et comment les maintenir, vous pouvez alors profiter des avantages qu’ils apportent à votre base de données.

Source de l’article sur DZONE

Some believe that experienced developers do not make silly errors. Comparison errors? Dereferencing null references? Bet you think: « No, it’s definitely not about me… » ;) By the way, what about errors with sorting? As the title suggests, there are some nuances.

OrderBy(…).OrderBy(…)

Let me give you an example to describe the problem. Let’s say we have some type (Wrapper) with two integer properties (Primary and Secondary). There’s an array of instances of this type. We need to sort it in ascending order. First — by the primary key, then — by the secondary key.

Source de l’article sur DZONE

Java for a lot of time has been accused and mocked for its verbosity. Even the most passionate Java developers have to admit that it felt ridiculous to declare a bean class with two attributes. If you follow the right recommendations, you end up adding not only getters and setters, but also the implementations of toString hashcode and equals methods. The final result is a chunk of boilerplate that invites you to start learning another language. 

Java

 

import java.util.Objects; public class Car { private String brand; private String model; private int year; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getModel() { return model; } public void setModel(String model) { this.model = model; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } @Override public String toString() { return "Car{" + "brand='" + brand + ''' + ", model='" + model + ''' + ", year=" + year + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Car car = (Car) o; return year == car.year && Objects.equals(brand, car.brand) && Objects.equals(model, car.model); } @Override public int hashCode() { return Objects.hash(brand, model, year); }
}

Source de l’article sur DZONE

The SQL Prompt Best Practice rule checks whether a comparison or expression includes a NULL literal (‘NULL’), which in SQL Server, rather than result in an error, will simply always produce a NULL result. Phil Factor explains how to avoid this, and other SQL NULL-related calamities.

SQL Prompt has a code analysis rule (BP011) that checks whether a comparison or expression includes a NULL literal ('NULL'). These will always produce a NULL result. To determine whether a datatype is or isn’t NULL, use ISNULLor ISNOTNULL.

Source de l’article sur DZONE

Writing code to make sure that input parameters are not null does not make Java code "safer;" it’s exactly the opposite — it makes code less readable and less safe.

Code With Null-Checks Is Less Readable

It would be difficult to argue that null-checks are attractive. Most of the time, it’s just boilerplate code, which contributes nothing to the "logic" of the method. It is a purely technical construct. Like this one:

Source de l’article sur DZONE