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

Ефективно свързване в интервали в SQL

Не съм сигурен как всичко работи вътрешно, но в зависимост от ситуацията бих посъветвал да си поиграете с маса, която „разгръща“ всички стойности от d1 и след това да се присъедините към тази. По този начин машината за заявки може да определи точния запис „точно“, вместо да се налага да намира комбинация от граници, които съответстват на търсената стойност.

напр.

x value
a  1
a  2
a  3
b  5
b  6
b  7
b  8
b  9
b 10
b 11
c 19 etc..

като се има предвид индекс на колоната със стойност (**), това би трябвало да е доста по-бързо от свързването с МЕЖДУ начало И край на оригиналната таблица d1 IMHO.

Разбира се, всеки път, когато правите промени в d1, ще трябва да коригирате и разгънатата таблица (спусък?). Ако това се случва често, ще отделите повече време за актуализиране на разгръщаната таблица, отколкото сте спечелили на първо място! Освен това, това може да отнеме доста (дисково) пространство бързо, ако някои от интервалите са наистина големи; и също така, това предполага, че не е необходимо да търсим нецели числа (напр. какво ще стане, ако търсим стойността 3,14?)

(Можете да помислите да експериментирате с уникален на (стойност, x) тук...)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Най-бързият начин за импортиране на голям CSV файл в MySql с помощта на MySql CLI

  2. Създаване на съхранени процедури с PDO в PHP

  3. Преобразуване на таблица от MyISAM в INNODB

  4. Изключение на MySQL – възникнала фатална грешка по време на четене на данни

  5. Вземете обратно заявка от подготвеното изявление за PDO