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

Je dobrý nápad indexovat pole datetime v mysql?

MySQL doporučuje používat indexy z různých důvodů, včetně odstranění řádků mezi podmínkami:http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

Díky tomu je váš sloupec datetime vynikajícím kandidátem na index, pokud jej budete používat v podmínkách často v dotazech. Pokud je vaší jedinou podmínkou BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 DAY) a nemáte v podmínce žádný jiný index, MySQL bude muset provést úplnou kontrolu tabulky na každý dotaz. Nejsem si jistý, kolik řádků se vygeneruje za 30 dní, ale pokud je to méně než 1/3 celkového počtu řádků, bude efektivnější použít index na sloupec.

Vaše otázka o vytvoření efektivní databáze je velmi široká. Chtěl bych se jen ujistit, že je normalizován a všechny příslušné sloupce jsou indexovány (tj. ty, které se používají ve spojeních a klauzulích Where).



  1. měl bych znovu použít kurzor v modulu python MySQLdb

  2. Klíčové slovo LIMIT na MySQL s připraveným příkazem

  3. Je InnoDB (MySQL 5.5.8) správnou volbou pro řádky s mnoha miliardami?

  4. Dotaz MySQL DATETIME DIFF