One of the often-quoted fairy-tales about indexes was the directive to “put the most selective column first”. It was never a sensible rule of thumb (except, possibly, prior to version 6.0).
It’s useless to have the most selective column of the index on the left if very few queries filter on it. Queries that don’t filter on it, but do filter on the other columns of the index will have to scan, and scans are expensive.
Comment évaluer le caractère stratégique d’une information ? Comment définir les risques de fuite ? Quels outils pour se protéger ? Comment aller plus (...)
In the first two articles in this series we listed a couple of methods for generating or retrieving execution plans and learned a few extra steps that could increase our confidence that we were using the right environment to investigate any problems we might have with a plan. In this article we’re going to become acquainted with a basic (though, as we will see in part 5, incomplete) guideline for interpreting the overall shape of the plan.
Apache Hadoop is commonly used for data analysis. It is fast for data loads and scalable. In a previous post I showed how to integrate MySQL with Hadoop.
SiliconANGLE (blog) Server SAN boosts MySQL performance by 3.4X SiliconANGLE (blog) Companies can increase MySQL performance by 3.4 times by using the new Linux Atomic Write and NVM compression extensions in a Server SAN configuration, attaching...
The SQL Design Patterns book has a section on Relational division. (Also available online). It mentions that Relational Division is truly exotic operator.
Drizzle is a free software/ open source relational database management system (DBMS) that was forked from version 6.0 of the MySQL DBMS. Like MySQL, Drizzle has a client/server architecture and uses SQL as its primary command language.
Le projet de règlement européen de protection des données personnelles adopté à une écrasante majorité par le Parlement (621 voix ) prévoit de rendre le " Data Protection Officer" obligatoire. Cette fonction désormais essentielle à l'ère du Big Data pourrait être assimilée à une sorte de "commissaire aux comptes de la data".
Le déploiement à tous les secteurs de la Business Intelligence conduite par l'utilisateur s'accélère, à mesure que les sociétés commencent à reconnaître la valeur métier des données. En France, cette tendance est encore plus notable dans les secteurs de la finance, de l’industrie, des télécoms, des media et de la distribution.
I recently concluded a migration away from MongoDB to PostgreSQL for one of my apps - digiDoc. I’d like to tell you why I did so. To be honest, the decision to use MongoDb was an ill-thought out one....
Lesson learned - thoroughly research any new technology you introduce into your stack, know well the strengths and weaknesses thereof and evaluate honestly whether it fits your needs or not - no matter how much hype there is surrounding said technology. What follows is also not a litany of the usual compaints against MongoDB such as data corruption, global write lock, shard configuration and so on. For our use case, mongodb failed at a much more basic level.
Le parcours d’index seul est une des optimisations les plus puissantes. Non seulement cela évite d’accéder à la table pour évaluer la clause where mais cela évite aussi complètement d’accéder à la table si la base de données peut trouver les colonnes sélectionnées dans l’index.
Pour couvrir une requête entière, un index doit contenir toutes les colonnes de la requête SQL, en particulier celles de la clause select comme indiqué dans l’exemple suivant :
CREATE INDEX ventes_sous_eur ON ventes ( id_supplementaire, valeur_eur );SELECT SUM(valeur_eur) FROM ventes WHERE id_supplementaire = ?;
Bien sûr, indexer la clause where est prioritaire par rapport aux autres clauses. La colonne ID_SUPPLEMENTAIRE est du coup en première position pour que l’index soit utilisable en tant que prédicat d’accès.
Different parts of the application need different rights.
Let us consider an e-commerce website: the part of the application providing the list of products, the search, the content, should not be the same as the part managing the users, the payment system and the stock. The content is not critical enough to access the user list, yet most of the times, the SQL injections are found there, and used to retrieve the password list, exploit the payments, etc. Why should it be that easy to extract critical data?
As shown with WordPress, you can separate the concerns. The admin part should have read and write access nearly everywhere, but not to the credit card data. The content part can access the product list, but cannot manage the stock. The payment system can manage user login, payment and stock.
With well managed database privileges, you can mitigate the impact of SQL injections, and prevent extraction of passwords and credit card numbers from non-critical parts of your application.
Moreover, this protection will be impervious to code changes that could introduce vulnerabilities. It provide a layer of defense that is easy to deploy, easy to manage and future proof.
In On learning InnoDB: A journey to the core, I introduced the innodb_diagrams project to document the InnoDB internals, which provides the diagrams used in this post.
Before diving into physical structures, it’s critical to understand that in InnoDB, everything is an index. What does that mean to the physical structure?
Every table has a primary key; if the CREATE TABLE does not specify one, the first non-NULLunique key is used, and failing that, a 48-bit hidden “Row ID” field is automatically added to the table structure and used as the primary key. Always add a primary key yourself. The hidden one is useless to you but still costs 6 bytes per row.
The “row data” (non-PRIMARY KEY fields) are stored in the PRIMARY KEY index structure, which is also called the “clustered key”. This index structure is keyed on the PRIMARY KEYfields, and the row data is the value attached to that key (as well as some extra fields for MVCC).
Secondary keys are stored in an identical index structure, but they are keyed on the KEY fields, and the primary key value (PKV) is attached to that key.
When discussing “indexes” in InnoDB (as in this post), this actually means both tables and indexes as the DBA may think of them.
Enhance Your MySQL XML Import Procedures using Prepared Statements Database Journal In my Importing XML Data into MySQL Tables Using a Stored Procedure article, I outlined some ways to work around MySQL's restrictions on stored procedures to import...
Hello, Comme vous le savez certainement (ou pas), la captation de notre session ‘Dissection de 3 problèmes de performances’ aux JSS2013 avait été perdue.
Ecoconception logicielle. Associés aux équipes techniques de MySQL et MariaDB, Facebook, LinkedIn, Google et Twitter sont entrain de créer un fork de MySQL destiné aux sites web à très forte volumétrie.
may not meet Wikipedia's notability guidelines for products and services . reliable, secondary sources about the topic. If notability cannot be established, the article is likely to be merged, redirected, or deleted. (March 2012)
Scriptella is an open source ETL (Extract-Transform-Load) and script execution tool written in Java. Its primary focus is simplicity. It doesn't require the user to learn another complex XML-based language to use it, but allows the use of SQL or another scripting language suitable for the data source to perform required transformations.
Pour comprendre la pertinence des solutions NoSQL la meilleure stratégie consiste à comprendre, dans un premier temps, ce qui assuré le succès et la pérennité des bases relationnelles.
To get content containing either thought or leadership enter:
To get content containing both thought and leadership enter:
To get content containing the expression thought leadership enter:
You can enter several keywords and you can refine them whenever you want. Our suggestion engine uses more signals but entering a few keywords here will rapidly give you great content to curate.