sql >> Database >  >> RDS >> Mysql

Is het sneller om te converteren naar varchar of varchar naar int bij het vergelijken in MySQL?

Dat hangt af van de indexen. Als voor beide kolommen indexen zijn ingesteld, moet u casten naar int , omdat het maar 4 bytes hoeft te vergelijken. Als echter alleen de varchar kolom is geïndexeerd, gecast naar varchar .

Aan het einde moet u uw vraag explain . hebben ed, om te zien welke index wordt gebruikt en dienovereenkomstig te casten.

Als er geen index is ingesteld, casten naar int is in het algemeen de betere benadering. Als er echter geen index is ingesteld, maakt het niet zoveel uit, u zou veel meer tijd besparen door te indexeren dan door de juiste manier van casten te kiezen. Behalve, nogmaals, de tafels zijn klein. Dan maakt het ook niet zoveel uit.

In feite moeten we niet alleen rekening houden met de kosten voor vergelijking, maar ook voor het casten:Een int casten naar een varchar is iets sneller dan het ontleden van een varchar naar een int . Het vergelijken van een varchar met minimaal 4 tekens maakt dat voordeel echter onbruikbaar. Als uw waarden meestal hoger zijn dan 999, casten naar int zal sneller zijn. Maar dat hangt nu af van je besturingssysteem, de architectuur, de instructieset die door je mysql-binary wordt gebruikt, enzovoort. De enige manier om een ​​echt betrouwbaar antwoord te krijgen is:Benchmark die situatie op de doelcomputer.




  1. MySQL zoeken en tekst in een veld vervangen

  2. Maak verbinding met lokale infile-optie in MySql Workbench

  3. Verklaar onverklaarbare impasse

  4. SqlDependency activeert de OnChange-gebeurtenis niet wanneer de dataset wordt gewijzigd