FrenchTech SAAS
33.5K views | +2 today
FrenchTech SAAS
Les news de l'univers SAAS et FrenchTech
Curated by Mickael Ruau
Your new post is loading...
Your new post is loading...

Popular Tags

Scooped by Mickael Ruau
October 2, 2013 6:57 PM
Scoop.it!

Astuce pour gestion des dates

Convention : le passage de dates est parfois problématique dans le cadre de la gestion multi-langues. Le format 'AAAAMMJJ' est universel et sera toujours correctement interprété, aussi, dans ce document, les dates sont toujours traitées avec le format 'AAAAMMJJ'.

No comment yet.
Scooped by Mickael Ruau
October 2, 2013 6:30 PM
Scoop.it!

Chapitre 14. Moteurs de tables MySQL et types de table - Manuel MySQL - Le PHP Facile

Chapitre 14. Moteurs de tables MySQL et types de table
Mickael Ruau's insight:
14.4. Tables BDB ou BerkeleyDB14.4.1. Systèmes d'exploitation supportés par BDB14.4.2. Installation de BDB14.4.3. Options de démarrage BDB14.4.4. Caractéristiques des tables BDB14.4.5. Ce que nous devons corriger dans BDB dans un futur proche :14.4.6. Restrictions avec les tables BDB14.4.7. Erreurs pouvant survenir lors de l'utilisation des tables BDB

Sleepycat Software fournit à MySQL le moteur de stockage transactionnel Berkeley DB. Ce moteur est généralement appelée BDB. Le support des tables BDB est inclus par la distribution des sources de MySQL à partir de la version 3.23.34 et est activé dans le binaire MySQL-Max.

En utilisant les tables DBD, vos tables ont plus de chances de survivre aux crashs, et vous avez accès à COMMIT et ROLLBACK avec les transactions. La distribution des sources de MySQL fournit une distribution corrigée de BDB pour lui permettre de fonctionner d'une fa¸on plus souple avec MySQL. Vous pouvez utiliser une version non-patchée de BDB avec MySQL.

Nous travaillons chez MySQL AB en coopération étroite avec Sleepycat pour garantir une bonne qualité d'interface MySQL/BDB. Même si Berkeley DB est très surveillée et fiable, l'interface MySQL est considérée de qualité Gamma. Nous y travaillons et l'optimisons.

Lorsqu'ils utilisent les tables BDB, nous aiderons nos utilisateurs à trouver les problèmes et à créer des batteries de tests reproductibles pour tout problème ayant trait aux tables BDB. De tels tests seront aussi envoyés à Sleepycat qui nous aidera aussi à trouver et résoudre les problèmes. Vu qu'il s'agit d'une collaboration à deux niveaux, les problèmes concernant les tables BDB prendront un peu plus de temps à être résolus en comparaison avec les autres gestionnaires de tables. Toutefois, étant donné que le code de BerkeleyDB a lui-même été utilisé par plusieurs autres applications à part MySQL, nous n'envisageons pas de rencontrer de gros problèmes avec.

Pour des informations générales sur Berkeley DB, visitez le site de Sleepycat Web, http://www.sleepycat.com/.

No comment yet.
Scooped by Mickael Ruau
October 2, 2013 6:21 PM
Scoop.it!

Chapitre 17. Introduction à MaxDB - Manuel MySQL - Le PHP Facile

Chapitre 17. Introduction à MaxDB
Mickael Ruau's insight:
17.1. Historique de MaxDB17.2. Licence et support MaxDB17.3. Liens traitant de MaxDB17.4. Concepts de base de MaxDB17.5. Différences de fonctionnalités entre MaxDB et MySQL17.6. Interopérabilité entre MaxDB et MySQL17.7. Mots réservés de MaxDB

MaxDB est une base de donnée au niveau de l'entreprise. MaxDB est le nouveau nom d'un système de gestion de bases de données, anciennement appelé SAP DB.

17.1. Historique de MaxDB

L'histoire de SAP DB commence au début des années 1980 lorsqu'il était développé en tant que produit commercial (Adabas). La base de données a changé de nom plusieurs fois durant sa vie. Lorsque SAP AG, une société allemande de Walldorf, a pris en main le développement de ce système de base de données, il portait le nom SAP DB.

SAP a développé ce système de base de données pour servir de système de stockage pour toutes les application SAP lourdes, à savoir SAP R/3. SAP DB avait pour objectif de fournir une alternative aux systèmes de bases de données d'éditeurs tiers, comme Oracle, Microsoft SQL Server, ou DB2 d'IBM. En octobre 2000, SAP a publié SAP DB sous licence GNU GPL (see Annexe G, Licence Publique Générale GNU), et en a fait ainsi un logiciel Open Source. En octobre 2003, plus de 2 000 clients l'utilisaient comme système de base de données séparé, en dehors de leur base de donnée principale, faisant partie de la solution APO/LiveCache.

En mai 2003, un partenariat technologique a été conclu entre MySQL AB et SAP AG. Ce partenariat autorise MySQL AB à développer davantage SAP DB, à changer son nom et à vendre des licences commerciales de SAP DB aux clients qui ne veulent pas être limités par les restrictions découlant de la licence GNU GPL (see Annexe G, Licence Publique Générale GNU). En août 2003, MySQL AB a rebaptisé SAP DB : MaxDB .

No comment yet.
Scooped by Mickael Ruau
October 2, 2013 6:19 PM
Scoop.it!

Chapitre 19. Procédures stockées et fonctions - Manuel MySQL - Le PHP Facile

Chapitre 19. Procédures stockées et fonctions
Mickael Ruau's insight:
Table des matières19.1. Procédures stockées et tables de droits19.2. Syntaxe des procédures stockées19.2.1. CREATE PROCEDURE et CREATE FUNCTION19.2.2. ALTER PROCEDURE et ALTER FUNCTION19.2.3. DROP PROCEDURE et DROP FUNCTION19.2.4. SHOW CREATE PROCEDURE et SHOW CREATE FUNCTION19.2.5. SHOW PROCEDURE STATUS et SHOW FUNCTION STATUS19.2.6. CALL19.2.7. La commande composée BEGIN ... END19.2.8. La commande DECLARE19.2.9. Les variables dans les procédures stockées19.2.10. Conditions et gestionnaires19.2.11. Curseurs19.2.12. Instructions de contrôle
No comment yet.
Scooped by Mickael Ruau
October 2, 2013 3:17 PM
Scoop.it!

JSON datatype in MariaDB prototype

JSON datatype in MariaDB prototype | FrenchTech SAAS | Scoop.it
I have patched up a MariaDB version with JSON support, just for the fun of it.
No comment yet.
Scooped by Mickael Ruau
October 2, 2013 9:47 AM
Scoop.it!

Managing Trigger in MySQL

Managing Trigger in MySQL | FrenchTech SAAS | Scoop.it
You will learn how to manage triggers including listing, modifying and removing triggers in MySQL databases.
Mickael Ruau's insight:

After creating a trigger, you can display its definition in the data folder, which contains trigger definition file. A trigger is stored as plain text file in the following database folder:

/data_folder/database_name/table_name.trg1/data_folder/database_name/table_name.trg

MySQL provides you with an alternative way to display the trigger by using the following SQL statement:

SELECT * FROM Information_Schema.Trigger WHERE Trigger_schema = 'database_name' AND Trigger_name = 'trigger_name';123SELECT*FROMInformation_Schema.TriggerWHERETrigger_schema='database_name'AND      Trigger_name='trigger_name';

The statement allows you to view both content of the trigger and its metadata such as associated table name and definer (name of MySQL user who created the trigger).

No comment yet.
Scooped by Mickael Ruau
October 2, 2013 9:38 AM
Scoop.it!

PHP MySQL BLOB

PHP MySQL BLOB | FrenchTech SAAS | Scoop.it
In this PHP MySQL BLOB tutorial, you will learn how to handle BLOB data using PDO. We will show you how to insert, update and select BLOB data.
Mickael Ruau's insight:

Sometimes, for the security reasons, you may need to store large data objects e.g., images, PDF files, videos, etc.,  in the MySQL databases.

MySQL provides a BLOB type that can hold a large amount of data. BLOB stands for binary large data object. The maximum value of a BLOB object is specified by the available memory and the communication package size. You can change the communication package size by using the  max_allowed_packet variable in MySQL and  post_max_size in the PHP settings.

No comment yet.
Scooped by Mickael Ruau
October 2, 2013 9:37 AM
Scoop.it!

MySQL :: MySQL Internals Manual :: 13 How MySQL Performs Different Selects

MySQL :: MySQL Internals Manual :: 13 How MySQL Performs Different Selects | FrenchTech SAAS | Scoop.it

Table of Contents     [+/-]

13.1. Steps of Select Execution13.2. select_resultClass13.3. SIMPLE or PRIMARY SELECT13.4. Structure Of Complex Select13.5. Non-Subquery UNION Execution13.6. Derived Table Execution13.7. Subqueries13.8. Single Select Engine13.9. Union Engine13.10. Special Engines13.11. Explain Execution
No comment yet.
Scooped by Mickael Ruau
October 2, 2013 9:36 AM
Scoop.it!

MySQL :: MySQL Internals Manual :: 22 InnoDB Storage Engine

MySQL :: MySQL Internals Manual :: 22 InnoDB Storage Engine | FrenchTech SAAS | Scoop.it

Table of Contents     [+/-]

22.1. InnoDB Record Structure     [+/-]22.2. InnoDB Page Structure     [+/-]
No comment yet.
Scooped by Mickael Ruau
October 2, 2013 9:34 AM
Scoop.it!

MySQL :: MySQL Internals Manual :: 11 Important Algorithms and Structures

MySQL :: MySQL Internals Manual :: 11 Important Algorithms and Structures | FrenchTech SAAS | Scoop.it

MySQL uses many different algorithms and structures. This chapter tries to describe some of them.

Mickael Ruau's insight:

Table of Contents     [+/-]

11.1. The Item Class11.2. How MySQL Does Sorting (filesort)11.3. Bulk Insert11.4. How MySQL Does Caching11.5. How MySQL Uses the Join Buffer Cache11.6. How MySQL Handles FLUSH TABLES11.7. Full-Text Search11.8. FLOAT and DOUBLE Data Type Representation11.9. Date and Time Data Type Representation11.10. Threads11.11. Character Sets and Collations11.12. Error Flags and Functions11.13. Functions in the mysys Library11.14. Bitmaps

 

No comment yet.
Scooped by Mickael Ruau
October 2, 2013 9:32 AM
Scoop.it!

Random Query Generator - MySQL - Oracle Wiki

Random Query Generator - MySQL - Oracle Wiki | FrenchTech SAAS | Scoop.it

The Random Query Generator is a fully-configurable framework which allows the creation of random data sets and the running of randomly generated queries against them, for the purposes of QA testing.

No comment yet.
Scooped by Mickael Ruau
October 2, 2013 8:17 AM
Scoop.it!

MySQL Cartoons - MySQL - Oracle Wiki

MySQL Cartoons - MySQL - Oracle Wiki | FrenchTech SAAS | Scoop.it

These cartoons can be freely used when blogging about MySQL products.

All the cartoons in this page are licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License

Mickael Ruau's insight:

MySQL Summer of CodeMySQL ForgeMySQL ProxyLAMPJavaWindowsSecurityUniversityWriterSpeakerTravelerWizardBathing BallSwimming FastSwimming RaceControl PanelAnalyzerCreative ArtistLibrarian

The author of these cartoons is Richard Duszczak of Carton Studio Limited

No comment yet.
Scooped by Mickael Ruau
October 1, 2013 12:02 PM
Scoop.it!

How to Create Good Test Cases - MySQL - Oracle Wiki

How to Create Good Test Cases - MySQL - Oracle Wiki | FrenchTech SAAS | Scoop.it

There are a lot of strict rules and rules of thumb which may increase the quality of tests written for the tool pair mysqltest/mysqltest-run.pl (MTR). The following presentation should give you some hints. This document should not replace reading our excellent manual about testinghttp://dev.mysql.com/doc/mysqltest/en/writing-tests.html.

Mickael Ruau's insight:

Some of the examples might not workwith MTR1 oron some operating system.MTR2 means the second version of mysql-test-run.pl/mysqltest. MTR2 replaced MTR1 ~ Jan 2009 in MySQL 5.1 and 6.0.The term "protocol" means in most cases "output from a test case." October 2007 - Matthias Leich - Create this document for a MySQL University sessionMarch 2009 - Matthias Leich - Updates and corrections, add "Examples of suspicious scripts"March 2009 - Patrick Crews - Corrections, add "Notes on MTR"

No comment yet.
Scooped by Mickael Ruau
October 2, 2013 6:32 PM
Scoop.it!

PHP: Requêtes préparées et procédures stockées - Manual

La plupart des bases de données supportent le concept des requêtes préparées. Qu'est-ce donc ? Vous pouvez les voir comme une sorte de modèle compilé pour le SQL que vous voulez exécuter, qui peut être personnalisé en utilisant des variables en guise de paramètres. Les requêtes préparées offrent deux fonctionnalités essentielles :

La requête ne doit être analysée (ou préparée) qu'une seule fois, mais peut être exécutée plusieurs fois avec des paramètres identiques ou différents. Lorsque la requête est préparée, la base de données va analyser, compiler et optimiser son plan pour exécuter la requête. Pour les requêtes complexes, ce processus peut prendre assez de temps, ce qui peut ralentir vos applications si vous devez répéter la même requête plusieurs fois avec différents paramètres. En utilisant les requêtes préparées, vous évitez ainsi de répéter le cycle analyse/compilation/optimisation. Pour résumer, les requêtes préparées utilisent moins de ressources et s'exécutent plus rapidement.Les paramètres pour préparer les requêtes n'ont pas besoin d'être entre guillemets ; le driver le gère pour vous. Si votre application utilise exclusivement les requêtes préparées, vous pouvez être sûr qu'aucune injection SQL n'est possible (Cependant, si vous construisez d'autres parties de la requête en vous basant sur des entrées utilisateurs, vous continuez à prendre un risque).

Les requêtes préparées sont tellement pratiques que c'est l'unique fonctionnalité que PDO émule pour les drivers qui ne les supportent pas. Ceci assure de pouvoir utiliser la même technique pour accéder aux données, sans se soucier des capacités de la base de données.

 

 
Mickael Ruau's insight:

Exemple #5 Appel d'une procédure stockée avec un paramètre d'entrée/sortie

<?php
$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(?)");
$value = 'hello';
$stmt->bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000); 

// appel de la procédure stockée
$stmt->execute();

print "La procédure a retourné : $value\n";
?>
No comment yet.
Scooped by Mickael Ruau
October 2, 2013 6:29 PM
Scoop.it!

Chapitre 7. Optimisation de MySQL - Manuel MySQL - Le PHP Facile

Chapitre 7. Optimisation de MySQL
Mickael Ruau's insight:
7.4.2. Rendre vos tables aussi compactes que possible

Une des optimisations simple est de réduire au maximum la taille de vos données et de vos index sur le disque et en mémoire. Cela peut donner des accélérations impressionnantes, car les lectures sur le disque sont plus rapides, et moins de mémoire centrale sera utilisée. L'indexation de colonnes de petites taille prend aussi moins de ressources.

MySQL supporte un grand nombre de type de tables et de format de ligne. Choisir ces types peut vous conduire à des améliorations de performances. See Chapitre 14, Moteurs de tables MySQL et types de table.

Vous pouvez obtenir des gains de performances sur les tables et minimiser l'espace disque en utilisant les techniques ci-dessous :

Utilisez les types les plus efficaces et les plus petits possibles. MySQL a différents types spécialisés qui épargnent de l'espace disque et de la mémoire.

Utilisez les types d'entiers les plus petits possible pour réduire les tables. Par exemple, MEDIUMINT est souvent préférable à INT.

Déclarez les colonnes pour qu'elle soient NOT NULL si possible. Cela accélère les traitements, et vous fait gagner un bit par colonne. Notez que si vous avez vraiment besoin d'une valeur NULL dans votre application, il est recommandé de l'utiliser. Evitez simplement de l'utiliser par défaut sur toutes les colonnes.

Si vous n'avez pas de colonne de taille variable (VARCHAR, TEXT ou BLOB), un format de ligne à taille fixe est utilisé. C'est plus rapide, mais cela prend plus d'espace sur le disque. See Section 14.1.3, « Formats de table MyISAM ».

La clé primaire doit être aussi courte que possible. Cela rend l'identification des lignes plus efficace.

Ne créez que des index dont vous avez besoin. Les index sont bons pour accélérer les lectures, mais sont plus lents lorsque vous écrivez des données. Si vous accéder essentiellement à votre table en lecture avec des combinaisons de colonnes, faites un index avec ces colonnes. Le premier index doit être la colonne la plus utilisée. Si vous utilisez constamment de nombreuses colonnes, vous devriez utiliser la colonne avec le plus de doublons en premier, pour obtenir une meilleure compression.

Si il est probable qu'une colonne a un préfixe unique avec les premiers caractères, il est mieux de n'indexer que ce préfixe. MySQL supporte les index sur une partie de colonne. Les index les plus courts sont les plus efficaces car ils prennent moins d'espace disque, et aussi, car ils absorbent plus de requêtes grâce au cache en mémoire. See Section 7.5.2, « Réglage des paramètres du serveur ».

Dans certaines circonstances, il peut être intéressant de séparer en deux une table qui est scannée très souvent. C'est particulièrement vrai pour les formats de tables dynamiques, et si possible, utilisez un format de table statique pour les colonnes les plus pertinentes.

  
No comment yet.
Scooped by Mickael Ruau
October 2, 2013 6:19 PM
Scoop.it!

Chapitre 18. Données spatiales avec MySQL - Manuel MySQL - Le PHP Facile

Chapitre 18. Données spatiales avec MySQL
Mickael Ruau's insight:

Table des matières

18.1. Introduction à GIS18.2. Le modèle géométrique OpenGIS18.2.1. La hiérarchie des classes géométriques18.2.2. Classe Geometry18.2.3. Classe Point18.2.4. Classe Curve18.2.5. Classe LineString18.2.6. Classe Surface18.2.7. Classe Polygon18.2.8. Classe GeometryCollection18.2.9. Classe MultiPoint18.2.10. Classe MultiCurve18.2.11. Classe MultiLineString18.2.12. Classe MultiSurface18.2.13. Classe MultiPolygon18.3. Formats géométriques supportés18.3.1. Format Well-Known Text (WKT)18.3.2. Le format Well-Known Binary (WKB)18.4. Créer une base de données avec les fonctionnalités géographiques18.4.1. Types de données géographiques MySQL18.4.2. Créer des objets géographiques18.4.3. Créer des colonnes géométriques18.4.4. Remplir des colonnes géométriques18.4.5. Lire des données géométriques18.5. Analyser des données géographiques18.5.1. Fonctions pour convertir les formes de format18.5.2. Fonction d'analyse des propriétés des formes Geometry18.5.3. Fonctions qui génèrent des formes géométriques à partir d'autres formes18.5.4. Fonctions de tests des relations géométriques entre les formes18.5.5. Relations avec les Rectangles enveloppes (MBRs)18.5.6. Fonctions qui testent les relations géométriques entre les formes18.6. Optimiser l'analyse géographique18.6.1. Créer un index géométrique18.6.2. Utiliser un index géométrique18.7. MySQL compatibilité avec GIS18.7.1. Les fonctionnalités de GIS que nous n'avons pas encore implémenté 

No comment yet.
Scooped by Mickael Ruau
October 2, 2013 3:18 PM
Scoop.it!

MariaDB Dynamic Columns

MariaDB Dynamic Columns | FrenchTech SAAS | Scoop.it
MariaDB has a feature called Dynamic Columns which is not in MySQL, and this feature requires some explanation.
No comment yet.
Scooped by Mickael Ruau
October 2, 2013 3:16 PM
Scoop.it!

MySQL 5.7 multi-source replication

MySQL 5.7 multi-source replication | FrenchTech SAAS | Scoop.it
Recently Oracle announced several new features for the latest available development version of MySQL that is 5.7.2 at the time of writing this article.
No comment yet.
Scooped by Mickael Ruau
October 2, 2013 9:39 AM
Scoop.it!

MySQL Cursor with Example

MySQL Cursor with Example | FrenchTech SAAS | Scoop.it
In this tutorial, you will learn how to use MySQL cursor in stored procedures to iterate through a result set.
Mickael Ruau's insight:

To handle a result set inside a stored procedure, you use a cursor. A cursor allows you to iterate a set of rows returned by a query and process each row accordingly.

MySQL cursor is read only, non-scrollable and asensitive.

Read only: you cannot update data in the underlying table through the cursor.Non-scrollable: you can only fetch rows in the order determined by the SELECT statement. You cannot fetch rows in the reversed order. In addition, you cannot skip rows or jump to a specific row in the result set.Asensitive: there are two kinds of cursors: asensitive cursor and insensitive cursor. An asensitive cursor points to the actual data, whereas an insensitive cursor uses a temporary copy of the data. An asensitive cursor performs faster than an insensitive cursor because it does not have to make a temporary copy of data. However, any change that made to the data from other connections will affect the data that is being used by an asensitive cursor, therefore it is safer if you don’t update the data that is being used by an asensitive cursor. MySQL cursor is asensitive.

You can use MySQL cursors in stored procedures, stored functions and triggers.

 
No comment yet.
Scooped by Mickael Ruau
October 2, 2013 9:37 AM
Scoop.it!

Listing Stored Procedures in a MySQL Database

We will show you how to list store procedures in a database and introduce you to the SHOW CREATE PROCEDURE statement to get stored procedure's source code.
Mickael Ruau's insight:

MySQL provides you with several useful statements that help you manage stored procedures effectively. Those statements include listing stored procedures and showing the stored procedure’s source code.

No comment yet.
Scooped by Mickael Ruau
October 2, 2013 9:36 AM
Scoop.it!

MySQL :: MySQL Internals Manual :: 21 MyISAM Storage Engine

MySQL :: MySQL Internals Manual :: 21 MyISAM Storage Engine | FrenchTech SAAS | Scoop.it

Table of Contents     [+/-]

21.1. MyISAM Record Structure     [+/-]21.2. The .MYI File     [+/-]21.3. MyISAM Dynamic Data File Layout     [+/-]21.4. MyISAM Compressed Data File Layout     [+/-]21.5. MyISAM Key Cache     [+/-]
No comment yet.
Scooped by Mickael Ruau
October 2, 2013 9:35 AM
Scoop.it!

MySQL :: MySQL Internals Manual :: 11.4 How MySQL Does Caching

MySQL :: MySQL Internals Manual :: 11.4 How MySQL Does Caching | FrenchTech SAAS | Scoop.it

MySQL has the following caches. (Note that the some of the filenames contain an incorrect spelling of the word “cache.”)

Key Cache

A shared cache for all B-tree index blocks in the different NISAM files. Uses hashing and reverse linked lists for quick caching of the most recently used blocks and quick flushing of changed entries for a specific table. (mysys/mf_keycash.c)

Record Cache

This is used for quick scanning of all records in a table. (mysys/mf_iocash.c and isam/_cash.c)

Table Cache

This holds the most recently used tables. (sql/sql_base.cc)

Hostname Cache

For quick lookup (with reverse name resolving). This is a must when you have a slow DNS. (sql/hostname.cc)

Privilege Cache

To allow quick change between databases, the last used privileges are cached for each user/database combination. (sql/sql_acl.cc)

Heap Table Cache

Many uses of GROUP BY or DISTINCT cache all found rows in a HEAP table. (This is a very quick in-memory table with hash index.)

Join Buffer Cache

For every “full join” in a SELECT statement the rows found are cached in a join cache. (A “full join” here means there were no keys that could be used to find rows for the next table in the list.) In the worst case, one SELECT query can use many join caches.

No comment yet.
Scooped by Mickael Ruau
October 2, 2013 9:33 AM
Scoop.it!

MySQL :: MySQL Internals Manual :: 8 The Optimizer

MySQL :: MySQL Internals Manual :: 8 The Optimizer | FrenchTech SAAS | Scoop.it

This chapter describes the operation of the MySQL Query optimizer, which is used to determine the most efficient means for executing queries.

No comment yet.
Scooped by Mickael Ruau
October 2, 2013 9:31 AM
Scoop.it!

MySQL Proxy - MySQL - Oracle Wiki

MySQL Proxy - MySQL - Oracle Wiki | FrenchTech SAAS | Scoop.it

MySQL Proxy is a simple program that sits between your client and MySQL server(s) that can monitor, analyze or transform their communication. Its flexibility allows for unlimited uses; common ones include:

load balancingfailoverquery analysisquery filtering and modification... and many more.
Mickael Ruau's insight:

Getting Started

Getting started with MySQL ProxyMySQL Proxy FAQYour first macros with MySQL Proxy
No comment yet.
Scooped by Mickael Ruau
October 2, 2013 7:26 AM
Scoop.it!

nosqlandsqlblendingthebestofbothworlds_130204015739_phpapp01.pdf

Mickael Ruau's insight:

NoSql & Sql : blending the best of both worlds.

No comment yet.