Mysql
 sql >> база данни >  >> RDS >> Mysql

Скъпо сканиране на пълна таблица на избрани всички без условие

Вижте връзката по-долу за повече подробности

https://dev.mysql.com/doc /refman/8.0/en/table-scan-avoidance.html

причината за пълното сканиране на таблицата е по-долу

  • Таблицата е толкова малка, че е по-бързо да се извърши сканиране на таблица, отколкото да се занимавате с търсене на ключ. Това е обичайно за таблици с по-малко от 10 реда и малка дължина на реда.

  • Няма приложими ограничения в клаузата ON или WHERE за индексирани колони.

  • Вие сравнявате индексирани колони с постоянни стойности и MySQL е изчислил (въз основа на дървото на индекса), че константите покриват твърде голяма част от таблицата и че сканирането на таблица ще бъде по-бързо

  • Използвате ключ с ниска кардиналност (много редове съответстват на стойността на ключа) през друга колона. В този случай MySQL приема, че с помощта на ключа вероятно ще направи много търсения на ключове и че сканирането на таблица ще бъде по-бързо.

за да избегнете пълно сканиране на таблица, използвайте по-долу:

  • Използвайте ANALYZE TABLE tbl_name, за да актуализирате разпределенията на ключовете за сканираната таблица.

  • Използвайте FORCE INDEX за сканираната таблица, за да кажете на MySQL, че сканирането на таблица е много скъпо в сравнение с използването на дадения индекс:

    напр. SELECT * FROM t1, t2 FORCE INDEX (index_for_column)WHERE t1.col_name=t2.col_name;




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как трябва да дезинфекцирам входа на базата данни в Java?

  2. MySQL Брои продукти от всички подкатегории

  3. mysql - Как да свържа низове и да преобразувам в дата низовете?

  4. Отдалечена MySQL връзка в PHP

  5. Услугата MySQL57 на локален компютър стартира и след това спря