{"id":262178,"date":"2015-07-24T09:51:02","date_gmt":"2015-07-24T05:51:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=262178"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=262178","title":{"rendered":"Nested Intervals \u0438 \u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0434 Yii2"},"content":{"rendered":"<p>     \t<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/533\/8fd\/a06\/5338fda0635941d0a993761395f2d35f.png\" align=\"left\"\/>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!<br \/>  \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0437\u043d\u0430\u0435\u0442, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Nested Sets, \u0438\u0445 \u0441\u0438\u043b\u044c\u043d\u044b\u0435 \u0438 \u0441\u043b\u0430\u0431\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u0441\u0443\u0434 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0439 \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0440\u0435\u0448\u0430\u0435\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u043f\u0440\u0430\u0432\u0434\u0430 \u0438\u043c\u0435\u0435\u0442 \u0438 \u0441\u0432\u043e\u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u041a\u0430\u043a\u0438\u0435 \u0436\u0435 \u043f\u043b\u044e\u0441\u044b \u0438 \u043c\u0438\u043d\u0443\u0441\u044b \u0443 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 Nested Sets:<br \/>  + \u0431\u044b\u0441\u0442\u0440\u0430\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u0434\u0435\u0442\u0435\u0439 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c;<br \/>  + \u0431\u044b\u0441\u0442\u0440\u0430\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u0443\u0437\u043b\u043e\u0432 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c;<br \/>  + \u0431\u044b\u0441\u0442\u0440\u0430\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u043f\u0443\u0441\u0442\u044b\u0445 \u0443\u0437\u043b\u043e\u0432 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c;<br \/>  + \u043c\u043e\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0445 \u0434\u0435\u0442\u0435\u0439 \u0432 \u0443\u0437\u043b\u0435 \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435;<br \/>  + \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u0430 \u043e\u0434\u043d\u0438\u043c \u0446\u0438\u043a\u043b\u043e\u043c;<br \/>   \u2014 \u043e\u0447\u0435\u043d\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0430\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u041a\u0430\u043a\u043e\u0432\u044b \u0436\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0439 \u0432\u0441\u0442\u0430\u0432\u043a\u0438\/\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f? \u0422\u0430\u043a \u043a\u0430\u043a, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u043d\u0438\u0446 \u0443\u0437\u043b\u043e\u0432 \u0438\u0434\u0443\u0442 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e, \u0442\u043e \u043b\u044e\u0431\u0430\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0434\u0435\u0440\u0435\u0432\u0430, \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0435\u0440\u0435\u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0433\u0440\u0430\u043d\u0438\u0446 \u0432\u0441\u0435\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0443\u0437\u043b\u043e\u0432. \u0415\u0441\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0430\u044f, \u0442\u043e \u044d\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0442\u044f\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0441\u0435\u043a\u0443\u043d\u0434 \u0438 \u0434\u0430\u0436\u0435 \u0434\u043e\u043b\u044c\u0448\u0435. \u041d\u0430 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438:  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/68d\/f13\/a42\/68df13a42de44aac80e8a207e436f94e.gif\" \/><\/div>\n<h3>Nested Intervals<\/h3>\n<p>  \u041f\u0435\u0440\u0432\u0430\u044f \u043c\u044b\u0441\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u0448\u043b\u0430 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443, \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0441 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c Nested Sets: \u00ab\u0442\u0430\u043a \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0434\u0432\u0438\u0433\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0443\u0437\u0435\u043b \u043a\u0430\u043a \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u043d\u0430 \u043f\u043e\u043b\u0435 \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b\u00bb. \u0422\u043e \u0435\u0441\u0442\u044c, \u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0438\u043c\u0435\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 0.0 \u0438 1.0, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0443\u0437\u043b\u044b \u0432 \u043b\u044e\u0431\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u043d\u0435 \u0434\u0432\u0438\u0433\u0430\u044f \u0434\u0440\u0443\u0433\u0438\u0435, \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u044c \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043c\u0435\u0436\u0434\u0443 \u0446\u0435\u043b\u0435\u0432\u044b\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438. \u041d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0437\u043d\u0430\u0435\u043c, \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0432 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u043e\u0438 \u043f\u0440\u0435\u0434\u0435\u043b\u044b, \u0442\u043e \u043e\u0442 \u044d\u0442\u043e\u0439 \u0438\u0434\u0435\u0438 \u044f \u0431\u044b\u0441\u0442\u0440\u043e \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f, \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b.<\/p>\n<p>  \u0421 \u0446\u0435\u043b\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0441\u0443\u0442\u044c \u0442\u0430 \u0436\u0435, \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043e\u0442 \u043d\u0443\u043b\u044f \u0434\u043e INT_MAX. \u0422\u043e\u0433\u0434\u0430 \u043f\u0440\u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0435\u0440\u0451\u043c \u043b\u044e\u0431\u044b\u0435 \u0434\u0432\u0430 \u043d\u0435\u0437\u0430\u043d\u044f\u0442\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0446\u0435\u043b\u0435\u0432\u044b\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438, \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u043c, \u0432\u0441\u0451 \u0431\u044b\u043b\u043e \u0431\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043a\u0440\u0443\u0442\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b \u043d\u0435 \u043e\u0434\u043d\u043e \u00ab\u043d\u043e\u00bb \u2014 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0441\u043b\u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442? \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u0432\u0438\u0433\u0430\u0442\u044c \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u043d\u0438\u0446 \u0434\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u00ab\u0440\u0430\u0441\u0447\u0438\u0449\u0430\u044f\u00bb \u0441\u0435\u0431\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438. \u0422\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u0442 \u043f\u043e\u0438\u0441\u043a \u0442\u0430\u043a\u043e\u0439 \u00ab\u0434\u044b\u0440\u043a\u0438\u00bb \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u0430\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0439\u0442\u0438 \u0434\u0430\u0436\u0435 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435, \u0447\u0435\u043c \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 nested sets.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/27d\/a5a\/862\/27da5a862d3f43f2b7a5ed9fdc1c87e3.gif\" \/><\/div>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u0443\u0433\u043b\u0438\u0432, \u044f \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u043d\u0435 \u0438\u0437\u043e\u0431\u0440\u0451\u043b \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434, \u0438 \u044d\u0442\u0430 \u0438\u0434\u0435\u044f \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 Nested Itervals. \u0422\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u044f \u0442\u0430\u043a \u0438 \u043d\u0435 \u043d\u0430\u0448\u0451\u043b, \u0442. \u043a. \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0434\u0430\u043d\u043d\u0443\u044e \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0443 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438 \u0432 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u043a\u043b\u044e\u0447\u0435, \u043c\u043e\u043b \u00ab\u043e\u0434\u043d\u043e \u043b\u0435\u0447\u0438\u043c, \u0434\u0440\u0443\u0433\u043e\u0435 \u043a\u0430\u043b\u0435\u0447\u0438\u043c\u00bb. \u0418 \u044d\u0442\u043e \u043d\u0435 \u0431\u0435\u0437\u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u043e \u043c\u043d\u0435 \u0441\u0442\u0430\u043b\u043e \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0447\u0451\u043c \u0434\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043b\u0443\u0447\u0448\u0435, \u0430 \u0432 \u0447\u0451\u043c \u0445\u0443\u0436\u0435, \u0438 \u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e.<\/p>\n<h3>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h3>\n<p>  \u042f \u043d\u0430\u0447\u0430\u043b \u043f\u0438\u0441\u0430\u0442\u044c Behavior \u0434\u043b\u044f Yii2, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u0438\u0434\u0435\u044e Nested Intervals. \u041f\u0435\u0440\u0432\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u2014 \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0433\u043e \u0443\u0437\u043b\u0430 \u0438\u043b\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u043f\u0440\u0438 <code>insertBefore()<\/code> \u0438 <code>insertAfter()<\/code> \u0438 \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u0435\u0440\u0432\u043e\u0433\u043e\/\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0443\u0437\u043b\u0430 \u043f\u0440\u0438 <code>prependTo()<\/code> \u0438 <code>appendTo()<\/code>? \u0415\u0441\u043b\u0438 \u0432 Nested Sets \u043e\u043d\u0430 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u0430 \u2014 +1\/-1 \u043a \u0433\u0440\u0430\u043d\u0438\u0446\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0443\u0437\u043b\u0430, \u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0431\u0430\u0437\u0435 \u043d\u0438\u043a\u0430\u043a. \u041d\u043e \u0431\u043b\u0430\u0433\u043e, \u0447\u0442\u043e \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0443 \u043d\u0430\u0441 \u0431\u044b\u0441\u0442\u0440\u044b\u0435.<\/p>\n<p>  \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0443\u0448\u043b\u043e \u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e\u0438\u0441\u043a\u0430 \u043d\u0435\u0437\u0430\u043d\u044f\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430, \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439, \u0435\u0441\u043b\u0438 \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u0432\u0441\u0442\u0430\u0432\u043a\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442. \u0417\u0430\u0442\u043e \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u0432\u0438\u0433\u0430\u0442\u044c \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u0431\u0430\u0437\u044b, \u0430 \u043b\u0438\u0448\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u0443\u0441\u043e\u0447\u043a\u0430 \u0434\u043e \u043f\u043e\u0447\u0442\u0438 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0439 \u00ab\u0434\u044b\u0440\u043a\u0438\u00bb \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u0430.<\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u043e\u0437\u043d\u0438\u043a \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0432\u0435\u0442\u0432\u0435\u0439 \u0432 \u043d\u043e\u0432\u043e\u0435 \u043c\u0435\u0441\u0442\u043e. \u0415\u0441\u043b\u0438 \u044d\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430, \u0442\u043e \u0442\u0443\u0442 \u0435\u0449\u0451 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0451 \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0432 \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0434\u0432\u0430 \u0431\u043b\u043e\u043a\u0430.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/15c\/15b\/4ef\/15c15b4ef57742b383df1a8eba50293e.png\" \/><\/div>\n<p>  \u041d\u043e \u0432\u043e\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0442\u0440\u0443\u0434\u043d\u043e \u0440\u0435\u0448\u0430\u0435\u043c\u0430\u044f, \u0442. \u043a. \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c\u044b\u0445 \u0443\u0437\u043b\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e, \u0438 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u0445 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u043e. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0432\u043e\u043e\u0431\u0449\u0435 \u0445\u043e\u0442\u0435\u043b \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0441\u043f\u0438\u0441\u0430\u0432 \u043d\u0430 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u041d\u043e \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435, \u043e\u0441\u043e\u0437\u043d\u0430\u043b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430 <code>optimize()<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u043b \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0443\u0437\u043b\u043e\u0432 \u043f\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0443. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e, \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0438\u0434\u0435\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c \u0443\u0437\u043b\u044b \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u043f\u0443\u0442\u0451\u043c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u0441 \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u00ab\u043e\u043a\u043d\u0430\u00bb \u043f\u043e\u0434 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c\u044b\u0435 \u0443\u0437\u043b\u044b. \u0412\u0441\u0451 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e (\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0435\u0441\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434 MySQL), \u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044e \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0434\u043a\u043e, \u043a\u0443\u0434\u0430 \u0447\u0430\u0449\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430.<\/p>\n<p>  \u0417\u0430\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0431\u044b\u043b\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u2014 \u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u0434\u0435\u0442\u0435\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u043c nested sets. \u0427\u0443\u0442\u044c \u043f\u043e\u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0441 \u0432\u044b\u0431\u043e\u0440\u043a\u0430\u043c\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e\/\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u043e\u0441\u0435\u0434\u0430 \u2014 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u0432\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430: \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f, \u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u0441 \u043b\u0438\u043c\u0438\u0442\u043e\u043c. \u0410 \u0432\u043e\u0442 \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u043b\u043e\u0445\u043e \u0441\u0442\u0430\u043b\u043e \u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u0443\u0441\u0442\u044b\u0445 \u0443\u0437\u043b\u043e\u0432 <code>getLeaves()<\/code>, \u0442. \u043a. \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0435\u0433\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e left join, \u0447\u0442\u043e \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0441\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<h3>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438<\/h3>\n<p>  \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u044f\u0434 \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f \u043d\u0435 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0438\u043b\u0438. \u0414\u0435\u043b\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u0432\u044b\u0431\u043e\u0440 \u0433\u0440\u0430\u043d\u0438\u0446 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0437\u0431\u0438\u0432 \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u043d\u0430 \u0442\u0440\u0438 \u0447\u0430\u0441\u0442\u0438. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u0443\u0437\u043b\u043e\u0432 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u043b\u0441\u044f. \u0422\u0430\u043a \u043a\u0430\u043a \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d 32 \u0431\u0438\u0442\u043d\u043e\u0433\u043e PHP \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 [0 \u2014 2147483647] (\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432\u043e float), \u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u0432\u0441\u0442\u0430\u0432\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 <code>appendTo()<\/code> \u0432\u0441\u0435\u0433\u043e 19-\u0442\u0438 \u0443\u0437\u043b\u043e\u0432 \u0432 \u043a\u043e\u0440\u0435\u043d\u044c, \u043d\u0430 20-\u0439 \u0443\u0437\u0435\u043b \u0443\u0436\u0435 \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043c\u0435\u0441\u0442\u0430 (2147483647\/3^19 = ~1.9), \u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u043f\u043e\u0438\u0441\u043a\u0443 \u043d\u0435\u0437\u0430\u043d\u044f\u0442\u044b\u0445 \u043c\u0435\u0441\u0442 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f. \u0422\u0430\u043a \u0434\u0435\u043b\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435 \u043f\u043e\u0439\u0434\u0451\u0442. \u041d\u0443\u0436\u043d\u044b \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u043c\u0435\u0441\u0442\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 Behavior \u0435\u0441\u0442\u044c \u0430\u0436 5 \u043e\u043f\u0446\u0438\u0439:  <\/p>\n<ul>\n<li> \u041f\u0435\u0440\u0432\u0430\u044f \u0438 \u0433\u043b\u0430\u0432\u043d\u0430\u044f <code>amountOptimize<\/code> \u2014 \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u0430 \u043a\u0430\u043a\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0437\u043b\u043e\u0432 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u043e\u0442\u0440\u0435\u0437\u043a\u0430. \u0422\u043e \u0435\u0441\u0442\u044c, \u043f\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 20, \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c 20 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u0443\u0437\u043b\u043e\u0432, \u0438 \u043e\u043d\u0438 \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u0437\u0430\u0439\u043c\u0443\u0442 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f, \u0430 \u0434\u0430\u043b\u044c\u0448\u0435 \u2014 \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f.<br \/>   \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432, \u0442\u043e\u0433\u0434\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u043d\u044b\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f.   <\/li>\n<li> <code>noPrepend<\/code>, <code>noAppend<\/code>, <code>noInsert<\/code> \u2014 \u044d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0441\u0442\u0430 \u043c\u0435\u0436\u0434\u0443 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438, \u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f <code>appendTo()<\/code> (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438), \u0442\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c <code>noPrepend = true<\/code> \u0438 <code>noInsert = true<\/code>, \u0438 \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043d\u0438\u0437\u0438\u0442\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0442\u044f\u0436\u0451\u043b\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u0441 \u0440\u0430\u0441\u0447\u0438\u0441\u0442\u043a\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u043f\u043e\u0434 \u043d\u043e\u0432\u044b\u0439 \u0443\u0437\u0435\u043b. \u0411\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u0445.<br \/> <br \/>\n<table>\n<tr>\n<th>amountOptimize=3<\/th>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/115\/32b\/512\/11532b5128a14e36858b714866095f65.png\" \/><\/div>\n<\/td>\n<\/tr>\n<tr>\n<th>amountOptimize=3<br \/>  noPrepend=true<\/th>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/17a\/5cd\/e17\/17a5cde1702d47a4a4f8ab334106a8e0.png\" \/><\/div>\n<\/td>\n<\/tr>\n<tr>\n<th>amountOptimize=3<br \/>  noAppend=true<\/th>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/275\/ec1\/3ad\/275ec13adbfb475f9ae28d643e98c8e2.png\" \/><\/div>\n<\/td>\n<\/tr>\n<tr>\n<th>amountOptimize=3<br \/>  noInsert=true<\/th>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/d3a\/e2b\/9a3\/d3ae2b9a354843e28fb41bd1782881e9.png\" \/><\/div>\n<\/td>\n<\/tr>\n<tr>\n<th>amountOptimize=3<br \/>  noInsert=true<br \/>  noPrepend=true<\/th>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/231\/6d4\/a07\/2316d4a07d794300b5f5022545fa91ca.png\" \/><\/div>\n<\/td>\n<\/tr>\n<tr>\n<th>amountOptimize=3<br \/>  noInsert=true<br \/>  noAppend=true<\/th>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/7a5\/14c\/648\/7a514c6480844ec6ad20b66770291bd5.png\" \/><\/div>\n<\/td>\n<\/tr>\n<\/table>\n<p>   \u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0434\u0430\u0451\u0442\u0435 <code>noPrepend = true<\/code> \u2014 \u044d\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0441\u0442\u0430\u0432\u043a\u0443 <code>prependTo()<\/code>, \u043f\u0440\u043e\u0441\u0442\u043e \u0441 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u043e\u043b\u0435\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e.   <\/li>\n<li>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>reserveFactor<\/code>, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438. \u041f\u0440\u0438 \u0435\u0434\u0438\u043d\u0438\u0447\u043a\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0430 \u0440\u0430\u0432\u0435\u043d \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u0443\u0437\u043b\u0430. \u0415\u0441\u043b\u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Behavior \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 <code>insertBefore()<\/code> \u0438 <code>insertAfter()<\/code>, \u0442\u043e \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043b\u0443\u0447\u0448\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c<\/li>\n<\/ul>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u0442\u0435\u0441\u0442\u044b \u0441\u0442\u0430\u043b\u0438 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u00ab\u0432\u043a\u0443\u0441\u043d\u044b\u043c\u0438\u00bb.<\/p>\n<h3>64 \u0431\u0438\u0442\u0430<\/h3>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442\u0435 BIGINT \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f <code>left<\/code> \u0438 <code>right<\/code> \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 64-\u0431\u0438\u0442\u043d\u044b\u0439 PHP, \u0442\u043e \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0432 \u0432\u0438\u0434\u0435 \u0431\u043e\u043b\u0435\u0435 \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430. \u041f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0439\u0442\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 range = [0, 9223372036854775807]. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0440\u0435\u0434\u043a\u0438\u043c\u0438 \u0441\u043b\u0443\u0447\u0430\u0438 \u0441 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c \u043c\u0435\u0441\u0442\u0430 \u043f\u043e\u0434 \u043d\u043e\u0432\u044b\u0435 \u0443\u0437\u043b\u044b.<\/p>\n<h3>\u0422\u0435\u0441\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/h3>\n<p>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u0442\u0430\u043b\u043e\u043d\u0430 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u0431\u044b\u043b \u0432\u0437\u044f\u0442 \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 Behavior, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 Nested Sets \u043e\u0442 \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u043e\u0433\u043e Alexander Kochetov (Creocoder) <a href=\"https:\/\/github.com\/creocoder\/yii2-nested-sets\">creocoder\/yii2-nested-sets<\/a>. \u0422\u0430\u043a \u0436\u0435 \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441 Adjacency List \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438. \u041f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043d\u0430\u0448\u0451\u043b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0437\u044f\u043b \u0438 <a href=\"https:\/\/github.com\/paulzi\/yii2-adjacency-list\">\u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u0430\u043c<\/a> (\u0434\u0430 \u0435\u0449\u0451 \u0438 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 JOIN\u043e\u0432, \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c).<\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430 \u0442\u0435\u0441\u0442\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435, \u0442. \u043a. \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0442\u0430\u043a \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e \u0432\u0440\u044f\u0434 \u043b\u0438 \u043a\u0442\u043e \u0431\u0443\u0434\u0435\u0442, \u043d\u043e \u043c\u043d\u0435 \u0434\u0430\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0431\u044b\u043b\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0431\u0430\u0437\u044b \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u0442\u0435\u0441\u0442\u043e\u0432. \u0412 \u043d\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0443\u0440\u043e\u0432\u043d\u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0434\u0435\u0442\u0435\u0439.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u043e\u0432 1 \u0438 2<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre>                                                 \u0417\u0430\u043f\u0440\u043e\u0441\u043e\u0432    DB \u0432\u0440\u0435\u043c\u044f    \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435  \u041f\u0430\u043c\u044f\u0442\u044c \u0422\u0435\u0441\u0442 1. \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 3 \u0443\u0440\u043e\u0432\u043d\u044f \u043f\u043e 12 \u0434\u0435\u0442\u0435\u0439.     Nested Sets                                 7696        6,961 ms    26,305 ms   135.8 MB     Itervals default (amount=10)                6377        2,850 ms    11,920 ms   87.3 MB     Itervals x64 default (amount=10)            5813        1,992 ms    10,963 ms   78.7 MB     Itervals amount=24                          5813        1,765 ms    10,442 ms   78.7 MB     Itervals amount=12 noPrepend noInsert       5813        1,750 ms    10,223 ms   78.7 MB     Adjacency List                              5811        1,567 ms    9,591 ms    71.3 MB      \u0422\u0435\u0441\u0442 2. \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 6 \u0443\u0440\u043e\u0432\u043d\u044f \u043f\u043e 3 \u0434\u0435\u0442\u0435\u0439.     Nested Sets                                 4735        5,701 ms    19,784 ms   82.2 MB     Itervals default (amount=10)                3644        1,275 ms    5,976 ms    48.9 MB     Itervals amount=3 noPrepend noInsert        3644        1,271 ms    5,993 ms    48.9 MB     Adjacency List                              3642        982 ms      5,812 ms    44.5 MB <\/pre>\n<p>  \u0423\u0436\u0435 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0442\u0435\u0441\u0442\u0435 \u0432\u0438\u0434\u043d\u043e, \u043a\u0430\u043a \u043f\u043b\u043e\u0445\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0435\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 amountOptimize. \u0412 32-\u0431\u0438\u0442\u043d\u043e\u043c \u0442\u0435\u0441\u0442\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043b\u0438\u0448\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b? \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0437\u043b\u043e\u0432 \u0441\u043a\u0440\u0438\u043f\u0442 \u00ab\u0440\u0430\u0441\u0447\u0438\u0449\u0430\u043b \u043c\u0435\u0441\u0442\u043e\u00bb. \u041d\u043e \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0434\u0430\u0436\u0435 \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0441\u0451 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u043e\u0441\u044c \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435. \u041a\u0441\u0442\u0430\u0442\u0438 64-\u0431\u0438\u0442\u0430 \u0432 \u044d\u0442\u043e\u043c \u0442\u0435\u0441\u0442\u0435 \u0432\u044b\u0440\u0443\u0447\u0438\u043b\u0438, \u0438 \u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u00ab\u043f\u043b\u043e\u0445\u043e\u0439\u00bb \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438.  <\/div>\n<\/div>\n<p>  \u0422\u0435\u0441\u0442\u044b 3-5 \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u044e\u0442 \u0432\u0441\u0442\u0430\u0432\u043a\u0443 20 \u0443\u0437\u043b\u043e\u0432 \u0432 \u0440\u0430\u0437\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u043e\u0432 3-5<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre>                                                 \u0417\u0430\u043f\u0440\u043e\u0441\u043e\u0432    DB \u0432\u0440\u0435\u043c\u044f    \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435  \u041f\u0430\u043c\u044f\u0442\u044c \u0422\u0435\u0441\u0442 3. \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e &lt;4% (20 \u0432 19657 \u0443\u0437\u043b\u043e\u0432)     Nested Sets                                 100         15,597 ms   16,636 ms   5.0 MB     Itervals                                    82          21 ms       150 ms      4.7 MB     Adjacency List                              100         170 ms      439 ms      4.6 MB  \u0422\u0435\u0441\u0442 4. \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0443 &gt;46% &lt;50% (20 \u0432 19657 \u0443\u0437\u043b\u043e\u0432)     Nested Sets                                 100         8,200 ms    8,985 ms    5.0 MB     Itervals                                    82          269 ms      593 ms      4.7 MB     Adjacency List                              100         163 ms      454 ms      4.7 MB  \u0422\u0435\u0441\u0442 5. \u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0432 \u043a\u043e\u043d\u0435\u0446 &gt;96% (20 \u0432 19657 \u0443\u0437\u043b\u043e\u0432)     Nested Sets                                 100         549 ms      911 ms      5.0 MB     Itervals                                    83          46 ms       187 ms      4.7 MB     Adjacency List                              106         159 ms      435 ms      4.7 MB <\/pre>\n<p>  \u0422\u0435\u0441\u0442 \u043d\u0430 \u0432\u0441\u0442\u0430\u0432\u043a\u0443 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0431\u0430\u0437\u044b \u043e\u0447\u0435\u043d\u044c \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u043b\u0430\u0431\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 Nested Sets \u2014 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0431\u0430\u0437\u044b \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0433\u0440\u0430\u043d\u0438\u0446 \u0432\u0441\u0435\u0439 \u0431\u0430\u0437\u044b. \u041e\u0442\u0441\u044e\u0434\u0430 \u0438 \u0440\u0430\u0437\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041b\u0438\u0448\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0432 \u043a\u043e\u043d\u0435\u0446 \u0431\u0430\u0437\u044b \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043a\u043e\u043d\u043a\u0443\u0440\u0438\u0440\u0443\u0435\u0442 \u0441 Nested Itervals. \u0418 \u043a\u0441\u0442\u0430\u0442\u0438, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e Adjacency List \u0431\u044b\u043b \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435, \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438, \u0435\u043c\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c <code>SELECT MAX(sort)<\/code>.  <\/div>\n<\/div>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0442\u0435\u0441\u0442 \u0443\u0434\u0430\u043b\u044f\u0435\u0442 20 \u0443\u0437\u043b\u043e\u0432 \u0438\u0437 \u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u0435\u0440\u0435\u0432\u0430:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u0430 6<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre>                                                 \u0417\u0430\u043f\u0440\u043e\u0441\u043e\u0432    DB \u0432\u0440\u0435\u043c\u044f    \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435  \u041f\u0430\u043c\u044f\u0442\u044c \u0422\u0435\u0441\u0442 6. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0438\u0437 \u043d\u0430\u0447\u0430\u043b\u0430 &lt;4% (20 \u0438\u0437 19657 \u0443\u0437\u043b\u043e\u0432)     Nested Sets                                 100         16,554 ms   17,678 ms   4.8 MB     Itervals                                    60          164 ms      250 ms      4.2 MB     Adjacency List parentJoin=0 childrenJoin=0  60          169 ms      257 ms      3.8 MB     Adjacency List parentJoin=3 childrenJoin=3  60          87 ms       162 ms      3.8 MB <\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u0442\u0435\u0441\u0442\u0443 3. \u0415\u0441\u0442\u044c \u043b\u0438\u0448\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 Itervals \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0443\u0436\u0435 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u00ab\u043f\u043b\u043e\u0445\u0438\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0439\u00bb.  <\/div>\n<\/div>\n<p>  \u0422\u0435\u0441\u0442 7 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u0442. \u043a. \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Behavior \u0434\u043b\u044f \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432. \u0412 \u0446\u0438\u043a\u043b\u0435 1000 \u0443\u0437\u043b\u043e\u0432 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b, \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u0439. \u0422\u0435\u0441\u0442 8 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439, \u043d\u043e \u0441 \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u0436\u0435\u0441\u0442\u043a\u0438\u043c\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c\u0438 \u2014 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043d\u043e \u0438 \u043b\u044e\u0431\u0430\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u043e\u0432 7 \u0438 8<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre>                                                 \u0417\u0430\u043f\u0440\u043e\u0441\u043e\u0432    DB \u0432\u0440\u0435\u043c\u044f    \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435  \u041f\u0430\u043c\u044f\u0442\u044c \u0422\u0435\u0441\u0442 7. appendTo() \u0432 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u0443\u0437\u0435\u043b (5 \u0443\u0440\u043e\u0432\u043d\u0435\u0439, 1000 \u0443\u0437\u043b\u043e\u0432)     Nested Sets                                 5002        5,989 ms    17,406 ms   80.7 MB     Itervals default (amount=10)                8497        23,301 ms   41,060 ms   120.7 MB     Itervals x64 default (amount=10)            7092        11,330 ms   23,618 ms   97.5 MB     Itervals amount=200,25 noPrepend noInsert   4009        1,431 ms    6,490 ms    50.2 MB     Itervals x64 amount=250,30 noPrepend noIns  4003        1,421 ms    6,615 ms    50.0 MB     Adjacency List                              4001        1,062 ms    5,976 ms    46.1 MB      \u0422\u0435\u0441\u0442 8. \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0432 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u0443\u0437\u0435\u043b (5 \u0443\u0440\u043e\u0432\u043d\u0435\u0439, 1000 \u0443\u0437\u043b\u043e\u0432)     Nested Sets                                 5002        9,383 ms    23,502 ms   80.7 MB     Itervals default (amount=10)                7733        8,123 ms    24,031 ms   107.2 MB     Itervals x64 default (amount=10)            5663        3,761 ms    14,084 ms   75.6 MB     Itervals amount=200,25 reserve=2            4175        1,548 ms    7,223 ms    52.8 MB     Itervals x64 amount=250,30 reserve=2        4003        1,541 ms    6,753 ms    50.0 MB     Adjacency List                              4395        4,394 ms    12,377 ms   53.4 MB <\/pre>\n<p>  \u0422\u0443\u0442 \u0432 \u0433\u043b\u0430\u0437\u0430 \u0431\u0440\u043e\u0441\u0430\u0435\u0442\u0441\u044f \u0442\u043e, \u043a\u0430\u043a \u0432\u0430\u0436\u043d\u043e \u043f\u0440\u0438 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0438 Intervals \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438, \u0442. \u043a. \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u0430\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0417\u0430\u0442\u043e \u0441 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e, \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c\u043e \u0441 Adjacency List. \u041a\u0441\u0442\u0430\u0442\u0438 \u0432 8 \u0442\u0435\u0441\u0442\u0435 \u043e\u043d \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u0438\u043b\u0441\u044f, \u0442. \u043a. \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0435\u043c\u0443 \u0442\u043e\u0436\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u00ab\u0440\u0430\u0441\u0447\u0438\u0449\u0430\u0442\u044c \u043c\u0435\u0441\u0442\u043e\u00bb.  <\/div>\n<\/div>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0432\u0430 \u0442\u0435\u0441\u0442\u0430 \u043d\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u043e\u0432 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u043e\u0432 9 \u0438 10<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre>                                                 \u0417\u0430\u043f\u0440\u043e\u0441\u043e\u0432    DB \u0432\u0440\u0435\u043c\u044f    \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435  \u041f\u0430\u043c\u044f\u0442\u044c \u0422\u0435\u0441\u0442 9. \u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u043e\u0432 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 &lt;4% (20 \u0438\u0437 19657 \u0443\u0437\u043b\u043e\u0432)     Nested Sets                                 200         24,312 ms   25,479 ms   6.3 MB     Itervals                                    160         180 ms      573 ms      6.0 MB     Adjacency List                              111         107 ms      318 ms      4.6 MB  \u0422\u0435\u0441\u0442 10. \u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u043e\u0432 \u0438\u0437 \u043a\u043e\u043d\u0446\u0430 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e &lt;4% &gt;96% (20 \u0438\u0437 19657 \u0443\u0437\u043b\u043e\u0432)     Nested Sets                                 200         16,999 ms   17,973 ms   6.3 MB     Itervals                                    160         16,972 ms   17,854 ms   6.0 MB     Adjacency List                              108         86 ms       325 ms      4.6 MB <\/pre>\n<p>  \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u0447\u0442\u043e \u0443 Nested Sets, \u0447\u0442\u043e \u0443 Nested Intervals \u044d\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0437\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043d\u043e \u0432 \u043a\u043e\u0434\u0435 \u0443 Creocoder \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0435 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e, \u0442. \u043a. \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u043f\u0430\u0440\u0443 \u0431\u043b\u043e\u043a\u043e\u0432, \u0432 \u0435\u0433\u043e \u043a\u043e\u0434\u0435 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u044f \u0431\u0430\u0437\u0430 \u0434\u043e \u043a\u043e\u043d\u0446\u0430, \u043f\u043e\u0442\u043e\u043c \u0438\u0434\u0451\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u043f\u044f\u0442\u044c \u0432\u0441\u044f \u0431\u0430\u0437\u0430 \u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0437\u0430\u0434. \u0417\u0430\u0442\u043e \u0443 Creocoder \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c unsigned \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 depth, \u0430 \u0432 \u043c\u043e\u0451\u043c Behavior \u043e\u043d \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0438\u0437 \u043a\u043e\u043d\u0446\u0430 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c\u044b, \u0430 \u0432\u043e\u0442 Adjacency List \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e.  <\/div>\n<\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f Behavior \u043c\u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0443\u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a\u0443\u044e \u0432\u044b\u0433\u043e\u0434\u0443 \u0434\u0430\u0441\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Trait \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0439. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0435\u0433\u043e Trait \u0441\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438. \u0414\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0432\u0435\u043b\u0438\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u0438 \u0432 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u0441 Trait. \u041d\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u0441\u0435\u0439 \u043c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f \u043d\u0435 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0438\u043b\u0438, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0442\u043e, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043e\u043b\u0435\u0435 \u0443\u0440\u043e\u0434\u043b\u0438\u0432 \u0441\u0442\u0430\u043b \u043a\u043e\u0434 \u0438\u0437-\u0437\u0430 \u043d\u0438\u0445.<br \/>  \u041f\u0440\u043e\u0441\u0442\u0430\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 <code>Model::find()-&gt;all()<\/code>:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u0430 11<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre>                                                 \u0417\u0430\u043f\u0440\u043e\u0441\u043e\u0432    DB \u0432\u0440\u0435\u043c\u044f    \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435  \u041f\u0430\u043c\u044f\u0442\u044c \u0422\u0435\u0441\u0442 11. \u0412\u044b\u0431\u043e\u0440 \u0432\u0441\u0435\u0445 \u0443\u0437\u043b\u043e\u0432 (19657 \u0448\u0442.)     Nested Sets                                 1           40 ms       1,108 ms    215.2 MB     Itervals                                    1           42 ms       1,247 ms    225.3 MB     Itervals Trait                              1           41 ms       1,174 ms    207.4 MB     Adjacency List                              1           33 ms       890 ms      179.1 MB <\/pre>\n<p>  \u042d\u0442\u043e\u0442 \u0442\u0435\u0441\u0442 \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 Behavior vs. Trait. \u0418 \u043a\u0430\u043a \u0432\u0438\u0434\u0438\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0435\u0441\u0442\u044c, \u043d\u043e \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f.  <\/div>\n<\/div>\n<p>  \u0412\u044b\u0431\u043e\u0440\u043a\u0430 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u0430 12<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre>                                                 \u0417\u0430\u043f\u0440\u043e\u0441\u043e\u0432    DB \u0432\u0440\u0435\u043c\u044f    \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435  \u041f\u0430\u043c\u044f\u0442\u044c \u0422\u0435\u0441\u0442 12. \u0412\u044b\u0431\u043e\u0440 \u0434\u0435\u0442\u0435\u0439 \u0438 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 (\u0434\u043b\u044f 819 \u0443\u0437\u043b\u043e\u0432 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u0438\u0437 19657 \u0443\u0437\u043b\u043e\u0432)     Nested Sets                                 1641        6,397 ms    7,498 ms    24.9 MB     Itervals Behavior                           1641        579 ms      1,657 ms    25.0 MB     Itervals Trait                              1641        615 ms      1,590 ms    24.3 MB     Adjacency List parentJoin=0 childrenJoin=0  2562        720 ms      1,969 ms    36.9 MB     Adjacency List parentJoin=3 childrenJoin=3  2461        704 ms      1,966 ms    35.3 MB <\/pre>\n<p>  \u0417\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0434\u0435\u0442\u0435\u0439 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0432 Nested Sets \u0438 Nested Intervals, \u043d\u043e \u0437\u0434\u0435\u0441\u044c \u0440\u0430\u0441\u043a\u0440\u044b\u043b\u0441\u044f \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043e\u0442 Creocoder \u2014 \u043d\u0435 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0442\u043e\u043c\u043a\u0438. \u041f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043c\u043e\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0437 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 left \u0438\u043b\u0438 right <code>`lft` &gt; :leftValue && `lft` &lt; :rightValue<\/code>, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e, \u0438\u043d\u0434\u0435\u043a\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043d\u0430 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 <code>`lft` &gt; :leftValue && `rgt` &lt; :rightValue<\/code>. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c EXPLAIN\u043e\u043c, \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u044f\u0441\u043d\u043e, \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u0435\u043d. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b Adjacency List \u0443\u0441\u0442\u0443\u043f\u0430\u044e\u0442, \u0447\u0442\u043e \u043d\u0435\u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e.  <\/div>\n<\/div>\n<p>  \u0412\u044b\u0431\u043e\u0440\u043a\u0430 \u043f\u0440\u0435\u0434\u043a\u043e\u0432:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u0430 13<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre>                                                 \u0417\u0430\u043f\u0440\u043e\u0441\u043e\u0432    DB \u0432\u0440\u0435\u043c\u044f    \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435  \u041f\u0430\u043c\u044f\u0442\u044c \u0422\u0435\u0441\u0442 13. \u0412\u044b\u0431\u043e\u0440\u043a\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 (\u0434\u043b\u044f 819 \u0443\u0437\u043b\u043e\u0432 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u0438\u0437 19657 \u0443\u0437\u043b\u043e\u0432)     Nested Sets                                 821         3,344 ms    4,069 ms    20.6 MB     Itervals Behavior                           821         3,292 ms    4,147 ms    22.0 MB     Itervals Trait                              821         3,310 ms    4,080 ms    21.1 MB     Adjacency List parentJoin=0 childrenJoin=0  3180        948 ms      2,304 ms    51.2 MB     Adjacency List parentJoin=3 childrenJoin=3  1641        486 ms      1,495 ms    30.8 MB <\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c Nested Sets \u0438 Nested Intervals \u0432\u0435\u0434\u0443\u0442 \u0441\u0435\u0431\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e, \u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e. \u0414\u0435\u043b\u043e \u0432 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0438 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u043c \u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432 \u2014 \u043e\u0431\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0438\u0437 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438\u043c\u0435\u044e\u0442 \u043c\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. Adjacency List \u043a\u0430\u043a \u043d\u0435 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0445\u043e\u0442\u044c \u0438 \u0437\u0430 \u0441\u0447\u0451\u0442 \u043f\u0430\u043c\u044f\u0442\u0438 (\u0445\u043e\u0442\u044f \u0442\u0443\u0442 \u0434\u0435\u043b\u043e \u0435\u0449\u0451 \u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u043c 3-\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0435).  <\/div>\n<\/div>\n<p>  \u0412\u044b\u0431\u043e\u0440\u043a\u0430 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u0438 \u043f\u0443\u0441\u0442\u044b\u0445 \u0443\u0437\u043b\u043e\u0432:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u0430 14 \u0438 15<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre>                                                 \u0417\u0430\u043f\u0440\u043e\u0441\u043e\u0432    DB \u0432\u0440\u0435\u043c\u044f    \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435  \u041f\u0430\u043c\u044f\u0442\u044c \u0422\u0435\u0441\u0442 14. \u0412\u044b\u0431\u043e\u0440\u043a\u0430 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u0443\u0437\u043b\u043e\u0432 (\u0434\u043b\u044f 819 \u0443\u0437\u043b\u043e\u0432 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u0438\u0437 19657 \u0443\u0437\u043b\u043e\u0432)     Nested Sets                                 1641        520 ms      1,424 ms    24.3 MB     Itervals Behavior                           1641        19,681 ms   21,326 ms   27.5 MB     Itervals Trait                              1641        19,666 ms   21,251 ms   26.5 MB     Adjacency List parentJoin=0 childrenJoin=0  1641        535 ms      1,442 ms    23.7 MB     Adjacency List parentJoin=3 childrenJoin=3  1641        508 ms      1,421 ms    23.6 MB  \u0422\u0435\u0441\u0442 15. \u0412\u044b\u0431\u043e\u0440\u043a\u0430 \u043f\u0443\u0441\u0442\u044b\u0445 \u0443\u0437\u043b\u043e\u0432 (\u0434\u043b\u044f 819 \u0443\u0437\u043b\u043e\u0432 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u0438\u0437 19657 \u0443\u0437\u043b\u043e\u0432)     Nested Sets                                 821         3,215 ms    3,814 ms    18.8 MB     Itervals Behavior                           821         10,450 ms   11,166 ms   18.8 MB     Itervals Trait                              821         10,425 ms   11,040 ms   18.7 MB     Adjacency List parentJoin=0 childrenJoin=0  1833        568 ms      1,743 ms    32.6 MB     Adjacency List parentJoin=3 childrenJoin=3  1732        556 ms      1,891 ms    31.3 MB <\/pre>\n<p>  \u0422\u0443\u0442, \u043a\u0430\u043a \u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c, \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0441\u043b\u0430\u0431\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b Nested Intervals. \u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f, \u0431\u0435\u0437 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432.  <\/div>\n<\/div>\n<h3>\u0412\u044b\u0432\u043e\u0434\u044b<\/h3>\n<p>  Nested Intervals \u2014 \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u0430\u0432\u043e \u043d\u0430 \u0436\u0438\u0437\u043d\u044c. \u0423 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430, \u0442\u0430\u043a \u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:<br \/>  + \u0431\u044b\u0441\u0442\u0440\u0430\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0430 (\u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432);<br \/>  + \u0431\u044b\u0441\u0442\u0440\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u0430 \u0441 \u043f\u043e\u0442\u043e\u043c\u043a\u0430\u043c\u0438;<br \/>  + \u0442\u0430\u043a\u0430\u044f \u0436\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043a\u0430\u043a \u0443 Nested Sets \u0432 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u043f\u0440\u0435\u0434\u043a\u043e\u0432 \u0438 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432;<br \/>  + \u0442\u0430\u043a \u0436\u0435, \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u0430 \u043e\u0434\u043d\u0438\u043c \u0446\u0438\u043a\u043b\u043e\u043c;<br \/>   \u2014 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u0443\u0437\u043b\u043e\u0432;<br \/>   \u2014 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u044b\u0445 \u0443\u0437\u043b\u043e\u0432;<br \/>   \u2014 \u043d\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u0432 \u0443\u0437\u043b\u0435.<\/p>\n<h3>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043b\u044f Yii2<\/h3>\n<p>  \u0425\u043e\u0447\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043c\u0435\u0442\u043e\u0434\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0432 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 Creocoder. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445 \u044f \u0438\u0437\u043c\u0435\u043d\u0438\u043b \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043d\u0430 \u0433\u0435\u0442\u0442\u0435\u0440\u044b <code>getParents() getDescendants()<\/code>, \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u0443\u0437\u043b\u0430\u043c, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e Relations, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u0431\u0430\u0437\u0435:  <\/p>\n<pre><code class=\"php\">$node = Node::findOne(['name' =&gt; 'test']); $children = $node-&gt;children; \/\/ relation $children = $node-&gt;getChildren()-&gt;all(); \/\/ query <\/code><\/pre>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u044f \u043d\u0435 \u0441\u0442\u0430\u043b \u043f\u0440\u043e\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0442\u044c Yii-\u0448\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a save($runValidation, $attributeNames), \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u043c\u0435\u0442\u043e\u0434\u044b, \u043a\u0430\u043a \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 (\u043f\u0440\u044f\u043c\u043e \u043a\u0430\u043a <code>-&gt;asArray()-&gt;<\/code>):  <\/p>\n<pre><code class=\"php\">$node = new Node(); $node-&gt;makeRoot()-&gt;save(false); $node-&gt;insertAfter($node2)-&gt;save(); <\/code><\/pre>\n<p>  <a href=\"https:\/\/github.com\/paulzi\/yii2-nested-intervals\">\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Nested Intervals \u043d\u0430 GitHub<\/a>.<br \/>  <a href=\"https:\/\/github.com\/paulzi\/yii2-adjacency-list\">\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Adjacency List \u043d\u0430 GitHub<\/a>.     \t<\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/263447\/\"> http:\/\/habrahabr.ru\/post\/263447\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \t<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/533\/8fd\/a06\/5338fda0635941d0a993761395f2d35f.png\" align=\"left\"\/>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!<br \/>  \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0437\u043d\u0430\u0435\u0442, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Nested Sets, \u0438\u0445 \u0441\u0438\u043b\u044c\u043d\u044b\u0435 \u0438 \u0441\u043b\u0430\u0431\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u0441\u0443\u0434 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0439 \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0440\u0435\u0448\u0430\u0435\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u043f\u0440\u0430\u0432\u0434\u0430 \u0438\u043c\u0435\u0435\u0442 \u0438 \u0441\u0432\u043e\u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-262178","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/262178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=262178"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/262178\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=262178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=262178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=262178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}