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

Производителност на заключване на ниво ред на InnoDB - колко реда?

Не е съвсем ясно какво питаш. Заключването гарантира, че само един потребител се опитва да промени даден ред в даден момент. Заключването на ниво ред означава, че само единият ред, който променят, е заключен. Обичайните алтернативи са или да заключите цялата таблица за продължителността на модификацията, или да заключите някои подмножества от таблицата. Заключването на ниво ред просто намалява това подмножество от редовете до най-малкия брой, който все още гарантира целостта.

Идеята е да се позволи на един потребител да променя едно нещо, без да се пречи на други потребители да променят други неща. Струва си да се отбележи обаче, че в някои случаи това може да бъде нещо като фалшиво положително, така да се каже. Няколко бази данни поддържат заключване на ниво ред, но правят заключването на ниво ред значително по-скъпо от заключването на по-голяма част от таблицата – достатъчно по-скъпо, че може да бъде контрапродуктивно.

Редактиране:Вашата редакция на оригиналната публикация помага, но не много. На първо място, размерите на редовете и нивата на включен хардуер имат огромен ефект (вмъкването на 8-байтов ред в дузина ивици 15K SAS твърди дискове е малко по-бързо от поставянето на един мегабайтов ред в един твърд диск от потребителски клас ).

Второ, до голяма степен става въпрос за броя на едновременните потребители, така че моделът на вмъкване прави голяма разлика. 1000 реда, вмъкнати в 3 часа сутринта, вероятно изобщо няма да бъдат забелязани. 1000 реда, вмъкнати равномерно през деня, означават малко повече (но вероятно само малко). 1000 реда, вмъкнати като пакет точно когато 100 други потребители се нуждаят от данни незабавно, може да уволнят някой (особено ако един от тези 100 е собственик на компанията).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Външен ключ Sequelize.js

  2. Научете за разрешенията на ниво таблица на MySQL

  3. Изтрийте много редове от таблица, като използвате id в Mysql

  4. как да добавя часове и минути в curdate mysql

  5. MySQL обяснява за DELETE заявки