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

Кой е най-ефективният начин за съхраняване на сортиране в група записи в база данни?

Ами просто да използвате integer колона, която определя реда? По подразбиране задавате числа * 1000, като 1000, 2000, 3000.... и ако преместите 3000 между 1000 и 2000, го променяте на 1500. Така че в повечето случаи изобщо не е необходимо да актуализирате останалите числа. Използвам този подход и работи добре. Можете също да използвате double но тогава нямате контрол върху точността и грешките при закръгляването, така че по-скоро не го използвайте.

Така алгоритъмът ще изглежда :да кажем, че премествате B на позиция след A. Първо направете избор, за да видите реда на записа до A. Ако той е поне +2 по-висок от реда на A, тогава просто задавате реда на B, за да се побере между тях. Но ако е само +1 по-високо (няма интервал след A), избирате граничните записи на B, за да видите колко място има от тази страна, разделяте на 2 и след това добавяте тази стойност към реда на всички записи между A и Б. Това е!

(Обърнете внимание, че трябва да използвате транзакция/заключване за всеки алгоритъм, който съдържа повече от една заявка, така че това важи и за този случай. Най-лесният начин е да използвате транзакция InnoDB.)



  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 DB в XML?

  2. Функция MySQL LEAST() – Намерете най-малкия аргумент в списък с аргументи

  3. MySQL TEXT разпределение на паметта

  4. Как да провалите или сринете вашите MySQL екземпляри за тестване

  5. Как работи функцията LPAD() в MySQL