sql >> Databáze >  >> RDS >> Mysql

Jak optimalizovat indexy mysql tak, aby operace INSERT probíhaly rychle na velké tabulce s častým zápisem a čtením?

Zápis operací pro jeden řádek do datové tabulky by neměl trvat 5 sekund, bez ohledu na velikost stolu.

Je váš seskupený index založen na poli časového razítka? Pokud ne, mělo by to tak být, abyste nepsali někam doprostřed stolu. Také se ujistěte, že používáte tabulky InnoDB - MyISAM není optimalizován pro zápis.

Navrhoval bych napsat do dvou tabulky:jedna dlouhodobá tabulka, jedna krátkodobá tabulka přehledů s malým nebo žádným indexováním, které se pak podle potřeby vyhazují.

Dalším řešením by bylo použití memcached nebo databáze v paměti pro živá data hlášení, takže nedochází k žádnému zásahu do produkční databáze.

Ještě jedna myšlenka:jak přesně musí být každá z těchto zpráv „živá“? Možná načítání nového seznamu na základě určitého časového limitu oproti jednou za každý zobrazení stránky by stačilo.



  1. Která tabulka Oracle používá sekvenci?

  2. nelze provádět dotazy RDS na heroku

  3. Implementace rekurzivních komentářů v PHP/MySQL

  4. Použití podřetězců v kritériích MySQL