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

Как да получите първите N стойности на всяка колона в MySql

Това НЕ е нещо, което искате да направите в една заявка. Просто го разделете, по една заявка за всяка колона. При правилните обстоятелства (известен още като правилните индекси и правилните типове колони), MySQL всъщност може да оптимизира тези заявки чрез късо съединение, така че никога да не се налага да сканира цялата таблица, просто изважда първите 5 стойности и готово.

SELECT column1 FROM table ORDER BY column1 DESC LIMIT 5
SELECT column2 FROM table ORDER BY column2 DESC LIMIT 5
etc

Ако се опитате да ги обедините всички заедно в една гигантска, тъпа заявка, ще успеете само да убедите оптимизатора просто да се откаже и да сканира отново цялата таблица 50 пъти и след това да използва 50 временни таблици и вероятно малко сортиране на файлове за добра мярка. Така че освен ако таблицата ви няма около 10 реда в нея (което очевидно няма), 50 отделни заявки винаги ще бъдат по-бързи.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вмъкване в MySQL от R

  2. MySQL премахва нечислови знаци за сравнение

  3. Изявлението за актуализиране на pdo с помощта на concat не работи

  4. Индекси на първични и външни ключове

  5. Твърде много връзки Hibernate и mysql