Კომპიუტერები, Მონაცემთა ბაზა
"პრობლემების" DML-Team განახლების MySQL
ყველა პროგრამისტი, რომელმაც მუშაობა მონაცემთა ბაზებთან, წინაშე DML-ოპერატორები (ინგლისურიდან თარგმნა - .. "მონაცემთა მანიპულირება ენა"), როგორიცაა აირჩიეთ, ჩადეთ, წაშლა და განახლება. MySQL სატრანსპორტო ასევე იყენებს თავის არსენალში ყველა ზემოთ ბრძანებები.
ეს განცხადებები ლოგიკურად ვსაუბრობთ მისი დანიშვნა - შერჩევის ჩანაწერები, ჩადეთ ახალი ღირებულებები, განახლებაზე არსებული მონაცემებით, სრული, ან შესაბამისად პირობებს, მოხსნა ინფორმაციის მონაცემთა ბაზაში. თეორიული სასწავლო მასალების დეტალურად არის აღწერილი პრინციპი ოპერაციის თითოეული ბრძანება და მათი სინტაქსი, მაგრამ არსად ი მითითება სირთულეები, რომელიც შეიძლება წარმოიშვას პრაქტიკის დროს გამოყენება. ეს მასალა დაეთმობა განხილვის ზოგიერთი მათგანი.
მოკლედ DML-ანგარიშგების (Insert)
შუეძლიათ, შემდგომი, აუცილებელია კიდევ ერთხელ გავიხსენოთ, უფრო დეტალურად მიზნით თითოეული ფუნქცია. ჩვენ გვაქვს ორი ოპერატორები დაინტერესებული უფრო დეტალურად: კულტურა და განახლება, რადგან ეს დამოკიდებულია მათ გამომდინარეობს ძირითადი სირთულე დამუშავების დიდი რაოდენობით მონაცემები.
თქვენ უნდა დაიწყოს ბრძანება Insert და შემდეგ თანდათანობით გადასვლის განახლება. MySQL სისტემის, ისევე როგორც ნებისმიერი სხვა თანამედროვე მონაცემთა ბაზა, გამოიყენოთ Insert ოპერაცია დაამატოთ ახალი ჩანაწერის არსებული მაგიდები მონაცემთა ბაზაში. სინტაქსი ეს ძალიან მარტივი და პირდაპირი. იგი შეიცავს ჩამონათვალი სფეროებში, რომელიც უნდა განხორციელდეს ღირებულებები, დანიშნულება - სახელით მაგიდასთან - და მაშინვე გააცნო მონაცემების ჩამონათვალი. ყოველ დროს, თქვენ შეასრულოს Insert მონაცემთა ბაზა განახლდება ახალი ღირებულებები.
განახლების განაცხადი
თუმცა, პრაქტიკაში, ხშირად არსებობს სიტუაციები, რომ გარკვეული კომპლექტი მონაცემები ერთი ან მეტი ატრიბუტი ღირებულებების დაზუსტებას მფლობელის მხრიდან. მაგალითად, სიტუაცია, სადაც კომპანია რეფორმის შემდგომი renaming მთავარი დეპარტამენტები. ამ შემთხვევაში აუცილებელია, რათა ცვლილებები თითოეული დეპარტამენტი. თუ მხოლოდ სახელის შეცვლის, მაშინ პრობლემა შეიძლება გადაწყდეს ძალიან სწრაფად. თუმცა, თუ იცვლება კოდირების თითოეული კომპონენტი მთელი წარმოება, რომელიც, როგორც წესი, წარმოადგენს პირველადი გასაღები, რომელიც, თავის მხრივ, იწვევს ცვლილებებს ინფორმაცია და თითოეული თანამშრომელი.
განახლება - DML-ოპერატორი შეიძლება გამოყენებულ იქნეს ამ პრობლემის მოსაგვარებლად. MySQL- სერვერზე, მოქმედი დიდი რაოდენობის მასალა, დახმარებით განახლება განაცხადი, შეასრულოს საჭირო შეკითხვაზე და პრობლემის მოგვარებას. მაგრამ ზოგჯერ მოხდეს დროს განახლება არ არის საკმაოდ ნათელი და რთული ასახსნელია სირთულის. ეს არის ის, რაც იწვევს სირთულის ჩანაწერების განახლება, განხილული იქნება.
რა პატარა უკვე განაცხადა, თეორიულად ...
განახლების გუნდი, როგორც ზემოთ აღინიშნა, გამოიყენება განაახლოთ არსებული ჩანაწერების მაგიდასთან. მაგრამ პრაქტიკაში, კლიენტებს წვდომის მონაცემთა ბაზის სერვერები ყოველთვის არ არის ცნობილი, არსებობს გარკვეული კომპლექტი მონაცემები მაგიდები თუ არა. წინასწარი შეამოწმეთ ხელმისაწვდომობა მონაცემთა ბაზაში შემდგომი განახლება შედეგების შრომატევადი და ნარჩენების სერვერზე შესაძლებლობები.
ამის თავიდან ასაცილებლად, სპეციალურ მონაცემთა MySQL სტრუქტურა - კულტურა * განახლება, რომელშიც ჩანართით ან განახლება შეიძლება შესრულდეს ერთმანეთისგან დამოუკიდებლად. ეს არის, როდესაც მაგიდაზე შესვლის კონკრეტული მდგომარეობა, იქნება განახლებული. თუ პირობები განიხილება, მონაცემები არ იქნება ნაპოვნი, MySQL სერვერზე შეუძლია შეასრულოს მონაცემების ატვირთვის მოთხოვნით.
განახლების მონაცემები, როდესაც არსებობს ეგზემპლარი
მნიშვნელოვანი კომპონენტია ამ Insert - თხოვნით, MySQL მონაცემთა ბაზების მართვის სისტემა - «On დუბლიკატი ძირითადი განახლების» პრეფიქსი. სრული სინტაქსის შეკითხვის ასეთია: «ჩადეთ test_table (employer_id, სახელი) ღირებულებები ( 1," აბრამოვი ') on დუბლიკატი გასაღები განახლება LAST_MODIFIED = NOW (); ".
ასეთი მოთხოვნა შეიძლება გამოყენებულ იქნას ჩაიწეროს ქმედებები, მაგალითად, განსაზღვრავს კვეთა გავლის დროს საწარმოს მოჰყვა იმედი დროის ინტერვალი და გამოვლენის დაგვიანებით. იმისათვის, რომ არ მიიღოს მაგიდაზე რამდენიმე ჩანაწერი, საკმარისი თითოეული თანამშრომლის შენარჩუნება ჩანაწერები მუდმივი განახლება. ეს არის დუბლიკატი გამშვები დიზაინი საშუალებას აძლევს მას.
სინამდვილეში პრობლემები ...
იმის გათვალისწინებით, რომ აღნიშნული მაგალითი რეგისტრაციის პერსონალი სამოქმედო შესასვლელთან, როგორც პრობლემა არის გამოყენების samouvelichivayuschihsya (auto _ ნამატი) სფეროებში, რომლებიც, როგორც წესი, გამოიყენება შეავსოთ პირველადი ძირითადი ფასეულობები (პირველადი _ გასაღები). თუ თქვენ იყენებთ MySQL განახლება ბრძანება დიზაინის ჩასმა განცხადება _ წუთობრივი, სფეროში მუდმივად იზრდება.
გარდა ამისა, ყველაფერი ხდება, როდესაც გამოყენებით ჩანაცვლება მშენებლობა იმ შემთხვევაში, თუ დუბლიკატი გამოვლენის. "Auto-წამიანი" ღირებულება გაიზარდა იმ შემთხვევაშიც კი, სადაც ეს საჭირო არ არის. ამის გამო, პრობლემები წარმოიქმნება overflow უღელტეხილზე ღირებულებები ან მერყეობს, რომელიც შემდგომში გამოიწვიოს malfunction მონაცემთა ბაზების მართვის სისტემების.
სავარაუდოდ პრობლემა
აღწერს პრობლემა უნდა ჩაითვალოს ვებ დეველოპერები, როგორც ეს არის ყველაზე გავრცელებული მრავალ მომხმარებლის სისტემები (საიტები, პორტალები, და ასე შემდეგ. P.), როდესაც სისტემა შესრულებული დიდი რაოდენობით პროცედურების ჩასმა და განახლება MySQL.
PHP - მიმართავ ძალიან ხშირად ხორციელდება. ამიტომ, რათა მივაღწიოთ მაქსიმალურ ზღვარი განისაზღვრება, როგორც AUTO_INCREMENT, ხდება სწრაფად და ანალიზი სირთულეები შეექმნა მიზეზების დასადგენად უბრალოდ არ იმუშავებს.
ამიტომ, დეველოპერები ეძლევათ, იყოს ყურადღებიანი გამოყენების დიზაინი დუბლიკატი გასაღები ბრძანება mysql განახლება. აირჩიეთ - queries როდესაც წვდომის მონაცემთა ბაზის სერვერი იმუშავებს გარეშე შეცდომა, მაგრამ დამატებით ახალი ჩანაწერი მონაცემთა ბაზაში ექნებათ უსიამოვნო სიტუაციები მომავალში გამოიწვიოს სერიოზული პრობლემები. გარდა ამისა, მიზანშეწონილია auto-წამიანი სფეროებში თავდაპირველად შემოწმება თავიანთი ჩანაწერები და შემდეგ კი გაიმართება განახლება.
Similar articles
Trending Now