MySQL : la limite des 1000 caractères pour un index unique

MySQL : contourner la limite des 1000 caractères pour un index uniqueJe suis en train de concrétiser, enfin, l’écriture d’un moteur de recherche que j’avais en projet depuis de nombreuses années. Il m’a fallu choisir un moteur de bases de données et mon choix s’est assez vite porté sur MySQL / MariaDB pour la simple raison qu’il a été utilisé à l’origine du projet Google. Et l’éditeur a très largement contribué à l’améliorer, avant qu’il ne décide de s’en affranchir totalement. Je tiens à préciser que je n’ai pas besoin de la partie relationnelle et que j’ai fait le choix de tables au format MyISAM / Aria.

La limite des 1000 caractères pour les index uniques

Il est impossible d’associer une contrainte d’unicité dans MySQL / MariaDB sur un champ de plus de 1000 caractères. Or, comme les adresses Http/Https/Ftp peuvent aller jusqu’à 2000 caractères, il faut trouver une autre solution. La solution que j’ai choisie, c’est d’associer un hash MD5 à l’adresse que j’ai passé en index unique ! La colonne ne représente plus qu’un longueur de 32 caractères. CQFD.

La fonction MD5 dans MySQL / MariaDB

L’utilisation de la fonction MD5 est très bien expliquée dans la documentation MySQL :

SELECT MD5('https://www.dsfc.net/');
+----------------------------------+
| MD5('https://www.dsfc.net/')      |
+----------------------------------+
| 949a65833e197145428e9ed18710ddb1 |
+----------------------------------+

La fonction md5 dans PHP

Comme je vais écrire mon module d’exploration en PHP, je vais être également être amené à utiliser la fonction md5 du PHP :

php -r "echo md5('https://www.dsfc.net/');"
949a65833e197145428e9ed18710ddb1

Vous pouvez également utiliser la fonction hash :

php -r "echo hash('md5','https://www.dsfc.net/');"
949a65833e197145428e9ed18710ddb1

Comme vous pouvez le remarquer, les deux valeurs obtenues en PHP et sous MySQL / MariaDB sont rigoureusement identiques. Ouf ! ;+)

Php / , , , ,

deneme bonusu veren siteler casino siteleri betdenemebonusu.com bahis siteleri Ev eşyası depolama Depolama Şehirlerarası evden eve nakliyat Evden eve nakliyat Eşya depolama yurtdışına ev taşıma Türkiye'den Almanya'ya ev taşıma zati eşya tasimaciligi uluslararasi zati eşya tasimaciligi eşya depolama şehirler arası nakliyat asansörlü nakliyat greatplay.net güvenilir online bahis siteler 2022 jetbahis Rexbet hovarda mobilbahis güncel adres sartsız Deneme Bonus sekabet maltcasino güncel adres> pinbahis100.com betduman.com olabahis.top سایت شرط بندی shartkade.com 1xbet-mobil.com beykoz evden eve nakliyat ataşehir evden eve nakliyat şişli evden eve nakliyat istanbul evden eve nakliyat
teens porn videos free sex xxx sexy videos