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

Kompresowanie tekstu przed zapisaniem go w bazie danych

Czy zamierzasz zindeksować te teksty. Jak duże jest obciążenie odczytu tych tekstów? Wstawić ładunek?

Możesz skorzystać z kompresji danych InnoDB - przejrzysty i nowoczesny sposób. Zobacz dokumentację aby uzyskać więcej informacji.

Jeśli masz naprawdę duże teksty (powiedzmy, że każdy tekst ma ponad 10 MB), dobrym pomysłem jest nie przechowywać ich w MySQL. Przechowuj skompresowane przez gzip teksty w systemie plików i tylko wskaźniki i meta w mysql. W przyszłości możesz w łatwy sposób rozbudować swój magazyn i przenieść go m.in. DFS.

Aktualizacja: kolejny plus przechowywania tekstów poza Mysql:DB pozostaje mały i szybki. Minus:wysokie prawdopodobieństwo niespójności danych.

Aktualizacja 2: jeśli masz dużo zasobów programistycznych, spójrz na projekty takie jak ten: http://code.google.com/p/mysql-filesystem-engine/ .

Ostateczna aktualizacja: według twoich informacji możesz po prostu użyć kompresji InnoDB - to to samo, co ZIP. Możesz zacząć od tych parametrów:

CREATE TABLE book_parts
 (...) 
 ENGINE=InnoDB
 ROW_FORMAT=COMPRESSED 
 KEY_BLOCK_SIZE=8;

Później będziesz musiał grać z KEY_BLOCK_SIZE . Zobacz SHOW STATUS LIKE 'COMPRESS_OPS_OK' i SHOW STATUS LIKE 'COMPRESS_OPS' . Stosunek tych dwóch parametrów musi być bliski 1,0:Dokumenty .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd krytyczny:wywołanie funkcji członkowskiej bind_param() na wartości logicznej

  2. Kontynuuj zapytanie SQL nawet w przypadku błędów w środowisku MySQL

  3. Dialekt hibernacji dla MySQL 8?

  4. Wydrukuj wyniki w formacie MySQL za pomocą Pythona

  5. Policz wiersze w bazie danych mysql, w których znacznik czasu znajduje się w przedziale X