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

BIGINT wydajność mysql w porównaniu do INT

Odpowiadając na Twoje pytanie:tak, zmniejszy się wydajność. Oczywiście im większy typ, im większa tabela, tym wolniejsze zapytania (więcej I/O, większe indeksy, dłuższy czas dostępu, mniejsze prawdopodobieństwo zmieszczenia się w różnych pamięciach podręcznych itd.). Tak więc ogólna zasada:zawsze używaj najmniejszego typu który pasuje do Twoich potrzeb.

Biorąc to pod uwagę, wydajność nie ma znaczenia . Czemu? Ponieważ kiedy dojdziesz do punktu, w którym przepełnisz INT, wtedy BIGINT jest jedynym rozwiązaniem i będziesz musiał z tym żyć. Również w tym momencie (biorąc pod uwagę, że używasz automatycznego przyrostu PK, będziesz miał ponad 4 miliardy wierszy), będziesz mieć większe problemy z wydajnością, a koszt BIGINT w porównaniu z INT będzie najmniejszym z twoich zmartwień.

Rozważ więc następujące punkty:

  • Użyj UNSIGNED, jeśli nie potrzebujesz wartości ujemnych, podwoi to limit.
  • Maksymalna wartość UNSIGNED INT wynosi 4.294.967.295. Jeśli używasz automatycznego przyrostu PK i masz tylko 300 000 wpisów, naprawdę nie musisz się martwić . W tej chwili możesz nawet użyć MEDIUMINT, chyba że planujesz naprawdę szybki wzrost. (patrz http://dev.mysql.com/doc /refman/5.1/en/integer-types.html )
  • Liczba w nawiasie po typie nie wpływa na maksymalną wartość typu . INT(7) jest tym samym co INT(8) lub INT(32). Jest używany do wskazania szerokości wyświetlania, jeśli określisz ZEROFILL (patrz http://dev.mysql.com/doc/refman/5.1/en/numeric-type-overview.html )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyświetlić ostatnie zapytania wykonane na MySQL?

  2. Jak przyspieszyć ładowanie danych do InnoDB (LOAD DATA INFILE)?

  3. Łączenie się z MySQL powoduje błąd Nie znaleziono nazwy źródła danych i nie określono domyślnego sterownika

  4. MySQL:FULL OUTER JOIN - Jak połączyć jedną kolumnę?

  5. Używanie pasków ukośnych po mysql_real_escape_string