Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wydajność MySQL unikalnego pola varchar vs unikalnego bigint

Czy twoja wartość szesnastkowa jest identyfikatorem GUID? Chociaż martwiłem się wydajnością tak długich elementów, jak indeksy, odkryłem, że we współczesnych bazach danych różnica wydajności nawet na milionach rekordów jest dość nieznaczna.

Potencjalnie większym problemem jest pamięć zużywana przez indeks (na przykład 16 bajtów vs 4 bajty int), ale na serwerach, które kontroluję, mogę na to przydzielić. Dopóki indeks może znajdować się w pamięci, stwierdzam, że inne operacje wiążą się z większym obciążeniem, niż rozmiar elementu indeksu nie robi zauważalnej różnicy.

Z drugiej strony, jeśli używasz identyfikatora GUID, zyskujesz niezależność od serwera w przypadku tworzonych rekordów i większą elastyczność w łączeniu danych na wielu serwerach (na czym mi zależy, ponieważ nasz system agreguje dane z systemów podrzędnych).

W tym artykule jest wykres, który wydaje się potwierdzać moje podejrzenia:Mity, GUID a autoinkrementacja



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zamawianie w przedsprzedaży zestawienia GROUP BY

  2. Zapytanie Django ORM GROUP BY wiele kolumn połączonych przez MAX

  3. MySQL - Jak ZAMÓWIĆ WEDŁUG TRAFNOŚCI? Tabela INNODB

  4. Dlaczego jdbcTemplate.batchUpdate() Springa jest tak powolny?

  5. Jaki jest najbardziej dojrzały/stabilny moduł mysql node.js?