Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

393
Views
¿Cuál es el tamaño óptimo de un índice de prefijo para direcciones URL (MySQL)?

Estoy recopilando algunos millones de filas de datos que contienen URL. Para deduplicarlos, necesito buscar una URL existente antes de insertar una nueva fila. Por lo tanto, me gustaría crear un índice en esa columna.

¿Cuál es el mejor tamaño de prefijo, sabiendo que la mayoría de las URL comienzan con http:// o https:// ?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Para unos pocos millones de filas, esencialmente no hay posibilidad de que MD5(URL) tenga una colisión accidental. Son 32 dígitos hexadecimales ( CHAR(32) CHARACTER SET ascii ). O mejor sería UNHEX(...) y ponerlo en BINARY(16) .

Luego agregue un índice UNIQUE en esa columna.

Qué versión estás usando? Algunas versiones más nuevas de MariaDB tienen algo así incorporado.

over 4 years ago · Santiago Trujillo Report

0

Hay dos formas de agregar índice en una cadena larga:

  1. agregue el índice para crc32 (urls), simplemente agregue una columna llamada crc32_urls y cree un índice en esto. Es posible que algunas URL tengan el mismo resultado por crc32 (urls), por lo que cada vez que busque debe ejecutarse así:
 SELECT * FROM table WHERE crc32_urls = xxx AND urls = xxx
  1. use el índice de prefijo. Para suponer cuánto debe ser la longitud del prefijo. Puede calcular
 SELECT COUNT(DISTINCT urls)/COUNT(*) FROM table

comparado con

 SELECT COUNT(DISTINCT left(urls, x))/COUNT(*) FROM table

la x es la longitud que especificó. Cuando dos números estén cerca, elija la longitud mínima.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!