MySQL-ის ინსტალაცია და საწყისი კონფიგურაცია Linux-ზე. რა უნდა იყოს კონფიგურირებული mySQL-ში ინსტალაციისთანავე

2009 წლის 10 აგვისტო, 03:41 სთ

რა უნდა იყოს კონფიგურირებული mySQL-ში ინსტალაციისთანავე?

  • MySQL
  • თარგმანი

საკმაოდ ძველი სტატიის უფასო თარგმანი MySQL Performance Blog-იდან იმის შესახებ, თუ რა არის საუკეთესო კონფიგურაციისთვის mySQL-ის ძირითადი ვერსიის დაყენებისთანავე.

გასაოცარია, რამდენი ადამიანი დააინსტალირებს mySQL-ს თავის სერვერებზე და ტოვებს მას ნაგულისხმევი პარამეტრებით.

იმისდა მიუხედავად, რომ mySQL-ში საკმაოდ ბევრი პარამეტრია, რომელთა შეცვლაც შეგიძლიათ, არსებობს მართლაც ძალიან მნიშვნელოვანი მახასიათებლების ნაკრები, რომელიც უნდა იყოს ოპტიმიზირებული თქვენი საკუთარი სერვერისთვის. ჩვეულებრივ, ასეთი მცირე შესწორებების შემდეგ, სერვერის მუშაობა შესამჩნევად იზრდება.

  • გასაღები_ბუფერი_ზომა- ძალიან მნიშვნელოვანი პარამეტრი MyISAM ცხრილების გამოყენებისას. დააყენეთ ის ხელმისაწვდომი ოპერატიული მეხსიერების დაახლოებით 30-40%-ზე, თუ იყენებთ მხოლოდ MyISAM-ს. სწორი ზომა დამოკიდებულია ინდექსების ზომაზე, მონაცემებზე და სერვერზე დატვირთვაზე - გახსოვდეთ, რომ MyISAM იყენებს ოპერაციული სისტემის (OS) ქეშს მონაცემების შესანახად, ასე რომ თქვენ უნდა დატოვოთ საკმარისი ოპერატიული მეხსიერება მონაცემებისთვის და მონაცემებმა შეიძლება მნიშვნელოვნად მეტი ადგილი დაიკავოს, ვიდრე ინდექსები. თუმცა, დარწმუნდით, რომ შეამოწმეთ დირექტივით გამოყოფილი ყველა სივრცე გასაღები_ბუფერი_ზომაქეშისთვის, მუდმივად გამოიყენებოდა - ხშირად შეგიძლიათ ნახოთ სიტუაციები, როდესაც ინდექსის ქეშისთვის არის გამოყოფილი 4 გბ, თუმცა ყველა .MYI ფაილის საერთო ზომა არ აღემატება 1 გბ-ს. ამის გაკეთება სრულიად უსარგებლოა. თუ პრაქტიკულად არ გაქვთ MyISAM ცხრილები, მაშინ გასაღები_ბუფერი_ზომაუნდა დაყენდეს დაახლოებით 16-32 მბ-ზე - ისინი გამოყენებული იქნება დისკზე შექმნილი დროებითი ცხრილების ინდექსების შესანახად მეხსიერებაში.
  • innodb_buffer_pool_size- თანაბრად მნიშვნელოვანი პარამეტრი, მაგრამ InnoDB-სთვის, აუცილებლად მიაქციეთ ყურადღება, თუ ძირითადად აპირებთ InnoDB ცხრილების გამოყენებას, რადგან ისინი ბევრად უფრო მგრძნობიარეა ბუფერული ზომის მიმართ, ვიდრე MyISAM ცხრილები. MyISAM ცხრილებს, პრინციპში, შეუძლიათ კარგად იმუშაონ მონაცემთა დიდი რაოდენობითაც კი და სტანდარტული მნიშვნელობით გასაღები_ბუფერი_ზომა, თუმცა mySQL შეიძლება იყოს ძალიან ნელი, თუ მნიშვნელობა არასწორია innodb_buffer_pool_size. InnoDB იყენებს საკუთარ ბუფერს ინდექსების და მონაცემების შესანახად, ამიტომ არ არის საჭირო მეხსიერების დატოვება OS ქეშისთვის - დააინსტალირეთ innodb_buffer_pool_sizeხელმისაწვდომი ოპერატიული მეხსიერების 70-80%-ში (თუ, რა თქმა უნდა, გამოიყენება მხოლოდ InnoDB ცხრილები). რაც შეეხება ამ ვარიანტის მაქსიმალურ ზომას - ანალოგიურად გასაღები_ბუფერი_ზომა- ნუ გაიტაცებთ, თქვენ უნდა იპოვოთ ოპტიმალური ზომა, იპოვოთ ხელმისაწვდომი მეხსიერების საუკეთესო გამოყენება.
  • innodb_additional_mem_pool_size- ეს ვარიანტი პრაქტიკულად არანაირ გავლენას არ ახდენს mySQL-ის მუშაობაზე, მაგრამ გირჩევთ დატოვოთ დაახლოებით 20 მბ (ან ცოტა მეტი) InnoDB-სთვის სხვადასხვა შიდა საჭიროებისთვის.
  • innodb_log_file_size- უაღრესად მნიშვნელოვანი პარამეტრი მონაცემთა ბაზებში ხშირი ჩაწერის ოპერაციებით ცხრილებზე, განსაკუთრებით დიდი მოცულობით. ბ უფრო დიდი ზომები ზრდის შესრულებას, მაგრამ ფრთხილად იყავით - ასევე გაიზრდება მონაცემთა აღდგენის დრო. მე ჩვეულებრივ ვაყენებ დაახლოებით 64-512 მბ-ზე, სერვერის ზომის მიხედვით.
  • innodb_log_buffer_size- ამ ვარიანტის სტანდარტული მნიშვნელობა საკმაოდ შესაფერისია უმეტეს სისტემებისთვის, ჩაწერის ოპერაციების საშუალო რაოდენობით და მცირე ტრანზაქციებით. თუ თქვენი სისტემა განიცდის აქტიურობის პერიოდს, ან აქტიურად მუშაობთ BLOB მონაცემებთან, მაშინ გირჩევთ ოდნავ გაზარდოთ მნიშვნელობა innodb_log_buffer_size. თუმცა, არ გადააჭარბოთ - ძალიან დიდი მნიშვნელობა იქნება მეხსიერების ფუჭად დაკარგვა: ბუფერი იშლება ყოველ წამში, ასე რომ თქვენ არ დაგჭირდებათ მეტი სივრცე, ვიდრე საჭიროა ამ წამის განმავლობაში. რეკომენდებული მნიშვნელობა არის დაახლოებით 8-16 MB, ხოლო მცირე მონაცემთა ბაზებისთვის კიდევ უფრო ნაკლები.
  • - ჩივით, რომ InnoDB 100-ჯერ უფრო ნელია ვიდრე MyISAM? თქვენ ალბათ დაგავიწყდათ პარამეტრი innodb_flush_log_at_trx_commit. 1-ის ნაგულისხმევი მნიშვნელობა ნიშნავს, რომ ყოველი UPDATE ტრანზაქცია (ან მსგავსი არატრანზაქციული ბრძანება) უნდა ჩამოიბანოს ბუფერი დისკზე, რაც საკმაოდ რესურსზე ინტენსიურია. აპლიკაციების უმეტესობა, განსაკუთრებით ის, ვინც ადრე იყენებდა MyISAM ცხრილებს, კარგად იმუშავებს "2" მნიშვნელობით (ანუ "არ გადაიტანოთ ბუფერი დისკზე, მხოლოდ ოპერაციული სისტემის ქეში"). თუმცა, ჟურნალი დისკზე ყოველ 1-2 წამში ერთხელ გაირეცხება, ასე რომ ავარიის შემთხვევაში თქვენ დაკარგავთ მაქსიმუმ 1-2 წამის განახლებებს. მნიშვნელობა "0" გააუმჯობესებს შესრულებას, მაგრამ თქვენ რისკავთ მონაცემების დაკარგვას მაშინაც კი, თუ mySQL სერვერი ავარიულია, მნიშვნელობის დაყენებისას innodb_flush_log_at_trx_commit"2"-ში თქვენ დაკარგავთ მონაცემებს მხოლოდ იმ შემთხვევაში, თუ მთელი ოპერაციული სისტემა დაიშლება.
  • მაგიდა_ქეში- ცხრილების გახსნა შეიძლება იყოს საკმაოდ რესურსი. მაგალითად, MyISAM ცხრილები აღნიშნავს .MYI ფაილების სათაურებს, როგორც „ამჟამად გამოიყენება“. ზოგადად არ არის კარგი მაგიდების ძალიან ხშირად გახსნა, ამიტომ უმჯობესია გქონდეთ საკმარისად დიდი ქეში, რომ თქვენი ყველა მაგიდა ღია იყოს. ეს იყენებს ზოგიერთ OS რესურსს და RAM-ს, მაგრამ ეს ჩვეულებრივ არ არის მნიშვნელოვანი პრობლემა თანამედროვე სერვერებზე. თუ თქვენ გაქვთ რამდენიმე ასეული ცხრილი, მაშინ ვარიანტის საწყისი მნიშვნელობა მაგიდა_ქეშიშეიძლება იყოს "1024" (გახსოვდეთ, რომ თითოეული კავშირი მოითხოვს საკუთარ სახელურს). თუ თქვენ გაქვთ კიდევ მეტი ცხრილი ან ბევრი კავშირი, გაზარდეთ პარამეტრის მნიშვნელობა. ვნახე mySQL სერვერი მნიშვნელობით მაგიდა_ქეშიუდრის 100000-ს.
  • თემა_ქეში- ძაფების შექმნა/განადგურება ასევე რესურსზე ინტენსიური ოპერაციაა, რომელიც ხდება ყოველ ჯერზე, როცა კავშირი დამყარდება და ყოველი კავშირი წყდება. მე ჩვეულებრივ ვაყენებ ამ პარამეტრს 16-ზე. თუ თქვენს აპლიკაციას შეიძლება ჰქონდეს ნახტომი ერთდროულად კავშირების რაოდენობაში და ცვლადის მიხედვით თემები_შექმნილიათუ ხედავთ ძაფების რაოდენობის სწრაფ ზრდას, მაშინ უნდა გაზარდოთ მნიშვნელობა თემა_ქეში. მიზანია თავიდან აიცილოს ახალი თემების შექმნა სერვერის ნორმალური მუშაობის დროს.
  • query_cache_size- თუ თქვენი აპლიკაცია ბევრს და ხშირად კითხულობს მონაცემებს და არ გაქვთ აპლიკაციის დონის ქეში, ეს ვარიანტი შეიძლება იყოს ძალიან სასარგებლო. არ დააყენოთ ეს მნიშვნელობა ძალიან მაღალი, რადგან დიდი მოთხოვნის ქეშის შენარჩუნება თავისთავად ძვირი იქნება. რეკომენდებული მნიშვნელობა არის 32-დან 512 მბ-მდე. არ დაგავიწყდეთ შეამოწმოთ რამდენად კარგად გამოიყენება შეკითხვის ქეში - ზოგიერთ პირობებში (ქეშში დარტყმების მცირე რაოდენობით, ანუ, როდესაც თითქმის არ არის იდენტური მონაცემების მიღება) დიდი ქეშის გამოყენებამ შეიძლება შეამციროს შესრულება.
როგორც ხედავთ, ეს არის გლობალური პარამეტრები. ეს ცვლადები დამოკიდებულია სერვერის აპარატურაზე და გამოყენებულ MySQL ძრავებზე, ხოლო სესიის ცვლადები ჩვეულებრივ კონფიგურირებულია სპეციალურად კონკრეტული ამოცანებისთვის. თუ ძირითადად იყენებთ მარტივ შეკითხვებს, მაშინ არ არის საჭირო მნიშვნელობის გაზრდა დალაგება_ბუფერული_ზომა, მაშინაც კი, თუ თქვენ გაქვთ დამატებითი 64 GB ოპერატიული მეხსიერება. უფრო მეტიც, ქეშის დიდ მნიშვნელობებს შეუძლიათ მხოლოდ სერვერის მუშაობის დაქვეითება. უმჯობესია სესიის ცვლადები მოგვიანებით დატოვოთ, სერვერის დაზუსტებისთვის.

PS: mySQL ინსტალაციას მოყვება რამდენიმე წინასწარ დაინსტალირებული my.cnf ფაილი, რომლებიც განკუთვნილია სხვადასხვა დატვირთვისთვის. თუ არ გაქვთ დრო სერვერის ხელით კონფიგურაციისთვის, მაშინ, როგორც წესი, უმჯობესია გამოიყენოთ ისინი, ვიდრე სტანდარტული კონფიგურაციის ფაილი, აირჩიოთ ის, რომელიც უფრო შესაფერისია თქვენი სერვერის დატვირთვისთვის.

ნაგულისხმევი კონფიგურაციის პარამეტრები Mysql-ში შექმნილია მცირე მონაცემთა ბაზებისთვის, რომლებიც მუშაობენ დაბალი დატვირთვით ძალიან მოკრძალებულ აპარატურაზე. თუ თქვენი გეგმები Mysql-ისთვის ცხრილის საზღვრებს სცდება რამდენიმე ასეული ჩანაწერით, აუცილებლად მოგიწევთ ნაგულისხმევი პარამეტრების შეცვლა. Mysql-ის ოპტიმალური კონფიგურაციის პროცესი შედგება ორი ნაწილისგან - საწყისი კონფიგურაცია და პარამეტრების რეგულირება ოპერაციის დროს. ოპერაციულ რეჟიმში პარამეტრების რეგულირება დიდწილად დამოკიდებულია თქვენი სისტემის სპეციფიკაზე და მის მონიტორინგზე - აქ სპეციალური წესები არ არსებობს. არსებობს რამდენიმე რეკომენდაცია თავდაპირველი დაყენებისთვის:

MySQL არის მონაცემთა ბაზის მართვის უფასო სისტემა. MySQL შემუშავებულია და მხარს უჭერს Oracle Corporation-მა, რომელმაც შეიძინა სავაჭრო ნიშნის უფლებები შეძენილ Sun Microsystems-თან ერთად, რომელმაც ადრე შეიძინა შვედური კომპანია MySQL AB. პროდუქტი განაწილებულია როგორც GNU General Public ლიცენზიით, ასევე საკუთარი კომერციული ლიცენზიით. გარდა ამისა, დეველოპერები ქმნიან ფუნქციონირებას ლიცენზირებული მომხმარებლების მოთხოვნით, სწორედ ამ შეკვეთის წყალობით გამოჩნდა რეპლიკაციის მექანიზმი თითქმის ყველაზე ადრეულ ვერსიებში.

გახსენით mysql პარამეტრების ფაილი, მაგალითად:

/etc/mysql/my.cnf

ყველაზე გავრცელებული პარამეტრები, რომლებსაც ყურადღება უნდა მიაქციოთ და შეცვალოთ თქვენი მოთხოვნების შესაბამისად:

გასაღები_ბუფერი_ზომა

თუ იყენებთ მხოლოდ MyIsam ცხრილებს, დააყენეთ ეს მნიშვნელობა სერვერზე არსებული RAM-ის 30%...40%. MyIsam იყენებს ოპერაციული სისტემის ქეშს მონაცემებისთვის, ასე რომ გაითვალისწინეთ, რომ ამისთვის დაგჭირდებათ დარჩენილი თავისუფალი მეხსიერება. თუ თქვენ გაქვთ რამდენიმე MyIsam ცხრილი და მათი საერთო ზომა მცირეა, დატოვეთ ეს მნიშვნელობა 32 მ-ის ფარგლებში.

innodb_buffer_pool_size

თუ იყენებთ მხოლოდ InnoDB ცხრილებს, დააყენეთ ეს მნიშვნელობა მაქსიმუმზე თქვენი სისტემისთვის. InnoDB ბუფერი ინახავს როგორც მონაცემებს, ასევე ინდექსებს (და ოპერაციული სისტემის ქეში არ გამოიყენება), ამიტომ ამ კლავიშის მნიშვნელობა დაყენებული უნდა იყოს ხელმისაწვდომი მეხსიერების 70%...80%.

თუ თქვენი სერვერი მუშაობს Linux-ზე ან Unix-ზე, არ დაგავიწყდეთ დააყენოთ innodb_flush_method პარამეტრი „O_DIRECT“, რათა თავიდან აიცილოთ ქეშირება OS დონეზე, რასაც Mysql უკვე ქეში აქვს.

innodb_log_file_size

ყურადღება მიაქციეთ ამ პარამეტრს, თუ ჩანაწერების დიდი რაოდენობა გაქვთ. რაც უფრო დიდია ამ გასაღების ზომა, მით უფრო ეფექტური იქნება მონაცემთა ჩაწერა. მაგრამ გახსოვდეთ, რომ ეს გაზრდის სისტემის აღდგენის დროს! ეს პარამეტრი ჩვეულებრივ დაყენებულია 64M-512M.

innodb_flush_log_at_trx_commit

ეს პარამეტრი მნიშვნელოვნად მოქმედებს innoDB ცხრილების მუშაობის (ჩაწერის) სიჩქარეზე.
მნიშვნელობა „1″ ნიშნავს, რომ ნებისმიერი დასრულებული ტრანზაქცია სინქრონულად ჩაადენს ჟურნალს დისკზე.
მნიშვნელობა „2″ აკეთებს იგივეს, მხოლოდ ის ათავსებს ჟურნალს არა დისკზე, არამედ ოპერაციული სისტემის ქეშში. ეს მნიშვნელობა უმეტეს შემთხვევაში შესაფერისია, რადგან... არ ასრულებს ძვირადღირებულ ჩაწერის ოპერაციას ყოველი გარიგების შემდეგ. ამ შემთხვევაში ჟურნალი იწერება დისკზე რამდენიმე წამის დაგვიანებით, რაც ძალიან უსაფრთხოა მონაცემთა უსაფრთხოების თვალსაზრისით.
მნიშვნელობა "0" მისცემს საუკეთესო შესრულებას. ამ შემთხვევაში, ბუფერი ჩაედინება ჟურნალის ფაილში ტრანზაქციის მიუხედავად. დააყენეთ ეს პარამეტრი "0"-ზე საკუთარი რისკის ქვეშ, რადგან ამ შემთხვევაში, მონაცემთა დაკარგვის რისკი იზრდება.

მაგიდა_ქეში

ეს ღილაკი განსაზღვრავს ღია ცხრილების შესანახად გამოყოფილ მეხსიერებას. თუ თქვენ გაქვთ რამდენიმე ასეული ცხრილი, დააყენეთ ეს მნიშვნელობა 1024-ზე. თუ თქვენ გაქვთ კავშირების დიდი რაოდენობა, თანდათან გაზარდეთ ეს მნიშვნელობა, რადგან თითოეული კავშირისთვის ცალკე ჩანაწერი ინახება.

თემა_ქეში

ეს პარამეტრი ხელს უწყობს სერვერთან დაკავშირებისას ნაკადის შექმნის/განადგურების ოპერაციების თავიდან აცილებას. დააყენეთ ეს პარამეტრი 16-ზე და გაზარდეთ საჭიროებისამებრ. შეამოწმეთ „Threads_created“ ინდიკატორი, იდეალურად ის უნდა იყოს ნულის ტოლი:

Mysql> აჩვენე სტატუსი, როგორიცაა 'threads_created'; +-----–+--–+ | ცვლადის_სახელი | ღირებულება | +-----–+--–+ | თემები_შექმნილი | 423312 | +------+---+

query_cache_size

ამ პარამეტრის მნიშვნელობა განსაზღვრავს, თუ რამდენი მეხსიერება უნდა იყოს გამოყენებული შეკითხვის ქეშისთვის. ნუ გაიტაცებთ უზარმაზარი ღირებულებების დაწესებით. შეკითხვის ქეში არ უნდა იყოს დიდი, რადგან... mysql შეჭამს რესურსებს ქეშის მონაცემების მართვისთვის. დაიწყეთ 32მ...128მ და გაზარდეთ საჭიროებისამებრ.

3.22 ვერსიიდან მოყოლებული, MySQL-ს შეუძლია სერვერისა და კლიენტებისთვის გაშვების ნაგულისხმევი ვარიანტების წაკითხვა ოფციონის ფაილებიდან.

Unix-ზე ნაგულისხმევი MySQL პარამეტრები იკითხება შემდეგი ფაილებიდან:

DATADIR არის MySQL მონაცემთა დირექტორია (ჩვეულებრივ /usr/local/mysql/data ორობითი ინსტალაციისთვის ან /usr/local/var წყაროს ინსტალაციისთვის). გაითვალისწინეთ, რომ ეს არის დირექტორია, რომელიც მითითებულია დაყენების დროს და არა ის, რომელიც მითითებულია --datadir-ით mysqld-ის გაშვებისას! (--datadir-ს არ აქვს გავლენა სერვერის მიერ პარამეტრული ფაილების ნახვაზე, რადგან ისინი ნახულობენ ბრძანების ხაზის არგუმენტების დამუშავებამდე).

Windows-ზე ნაგულისხმევი MySQL პარამეტრები იკითხება შემდეგი ფაილებიდან:

გთხოვთ გაითვალისწინოთ, რომ Windows-ზე ყველა ბილიკი უნდა იყოს მითითებული / ნაცვლად \. თუ თქვენ უნდა გამოიყენოთ \, უნდა მიუთითოთ ის ორჯერ, რადგან \ არის გაქცევის სიმბოლო MySQL-ში.

MySQL ცდილობს წაიკითხოს პარამეტრების ფაილები ზემოთ ჩამოთვლილი თანმიმდევრობით. თუ არსებობს რამდენიმე ასეთი ფაილი, მაშინ შემდგომში მოსულ ფაილში მითითებულ პარამეტრს უპირატესობა აქვს იმავე პარამეტრზე, რომელიც მითითებულია ადრე მდებარე ფაილში. ბრძანების სტრიქონზე მითითებულ ვარიანტებს უპირატესობა ენიჭება ნებისმიერ ოფციონის ფაილში მითითებულ ვარიანტებზე. ზოგიერთი პარამეტრის დაყენება შესაძლებელია გარემოს ცვლადების გამოყენებით. ბრძანების სტრიქონზე ან ოფციონურ ფაილებში მითითებულ ოფციებს უპირატესობა აქვს გარემოს ცვლადებზე (იხ. დანართი F, გარემოს ცვლადები).

აქ მოცემულია პროგრამების სია, რომლებიც მხარს უჭერენ პარამეტრულ ფაილებს: mysql, mysqladmin, mysqld, mysqld_safe, mysql.server, mysqldump, mysqlimport, mysqlshow, mysqlcheck, myisamchk და myisampack.

ნებისმიერი პარამეტრი, რომელიც შეიძლება მიეთითოს ბრძანების სტრიქონზე MySQL პროგრამის გაშვებისას, ასევე შეიძლება მითითებული იყოს პარამეტრების ფაილში (წინასწარი ორმაგი ხაზების გარეშე). ხელმისაწვდომი ვარიანტების სიის მისაღებად გაუშვით პროგრამა --help ოფციით.

პარამეტრის ფაილი შეიძლება შეიცავდეს შემდეგ ხაზებს:

    კომენტარების სტრიქონები იწყება " # " ან " ; " სიმბოლოთი. ცარიელი ხაზები იგნორირებულია.

    ჯგუფი არის პროგრამის ან ჯგუფის სახელი, რომლისთვისაც გსურთ პარამეტრების დაყენება. ნებისმიერი პარამეტრი ან სტრიქონი, რომელიც განსაზღვრავს ცვლადის მნიშვნელობებს, რომლებიც მითითებულია ჯგუფის ხაზის შემდეგ, მიენიჭება დასახელებულ ჯგუფს, სანამ არ დასრულდება პარამეტრის ფაილი ან არ იქნება მითითებული სხვა ჯგუფის ხაზი.

    ექვივალენტურია --ოპცია ბრძანების ხაზზე.

    --option=მნიშვნელობის ექვივალენტი ბრძანების სტრიქონზე.

    კომპლექტი-ცვლადი = ცვლადი=მნიშვნელობა

    ექვივალენტური --set-variable variable=value ბრძანების სტრიქონზე. ეს სინტაქსი უნდა იყოს გამოყენებული mysqld ცვლადების დასაყენებლად. გაითვალისწინეთ, რომ --set-variable არ გამოიყენება MySQL 4.0-ის მიხედვით. უბრალოდ გამოიყენეთ --variable=value.

კლიენტთა ჯგუფი უზრუნველყოფს პარამეტრების დაყენების შესაძლებლობას, რომლებიც ვრცელდება ყველა MySQL კლიენტზე (გარდა თავად mysqld-ისა). ეს ჯგუფი შესანიშნავია სერვერთან დაკავშირებისას გამოსაყენებელი პაროლის დასაზუსტებლად (მაგრამ დარწმუნდით, რომ მხოლოდ თქვენ გაქვთ ამ ფაილის წაკითხვისა და ჩაწერის უფლება).

გაითვალისწინეთ, რომ პარამეტრებისა და მნიშვნელობებისთვის, მათ წინ ან მის შემდეგ შეყვანილი სივრცე ავტომატურად იშლება. შემდეგი გაქცევის თანმიმდევრობა შეიძლება გამოყენებულ იქნას მნიშვნელობის სტრიქონებში: "\b", "\t", "\n", "\r", "\\" და "\s" ("\s" არის სივრცე).

ტიპიური გლობალური პარამეტრების ფაილის მაგალითი:

Port=3306 socket=/tmp/mysql.sock port=3306 socket=/tmp/mysql.sock set-variable = key_buffer_size=16M კომპლექტი-ცვლადი = max_allowed_packet=1M სწრაფი

ტიპიური მომხმარებლის პარამეტრების ფაილის მაგალითი:

# მითითებული პაროლი გაეგზავნება ყველა სტანდარტულ MySQL კლიენტს პაროლი=my_password no-auto-rehash set-variable = connect_timeout=2 interactive-timeout

თუ თქვენ გაქვთ წყაროს განაწილება, მაშინ, მაგალითად, კონფიგურაციის ფაილები სახელად my-xxxx.cnf შეგიძლიათ იხილოთ support-files დირექტორიაში. ბინარული განაწილებისთვის შეხედეთ DIR/support-files დირექტორია, სადაც DIR არის MySQL ინსტალაციის დირექტორიას სახელი (ჩვეულებრივ /usr/local/mysql). ამჟამად არსებობს კონფიგურაციის ფაილების მაგალითი მცირე, საშუალო, დიდი და ძალიან დიდი სისტემებისთვის. ფაილზე ექსპერიმენტისთვის შეგიძლიათ დააკოპიროთ my-xxxx.cnf თქვენს მთავარ დირექტორიაში (ასლს დაარქვით .my.cnf).

ყველა MySQL კლიენტი, რომელიც მხარს უჭერს ოფციონის ფაილებს, იღებს შემდეგ ვარიანტებს:

გთხოვთ გაითვალისწინოთ, რომ ზემოაღნიშნული პარამეტრები პირველ რიგში უნდა იყოს ბრძანების ხაზზე! თუმცა, --print-defaults ვარიანტი შეიძლება გამოყენებულ იქნას --defaults-xxx-ფაილის ბრძანებებისთანავე.

შენიშვნა დეველოპერებისთვის: ოფციონების ფაილი მუშავდება შემდეგნაირად: ყველა შესატყვისი ვარიანტი (ანუ, ვარიანტები შესატყვის ჯგუფებში) მუშავდება ბრძანების ხაზის რაიმე არგუმენტამდე. ეს ალგორითმი კარგად შეეფერება პროგრამებს, რომლებიც, თუ ერთი და იგივე პარამეტრი რამდენჯერმე არის მითითებული, იყენებენ პარამეტრის ბოლო ინსტანციას. თუ თქვენ მუშაობთ ძველ პროგრამასთან, რომელიც კითხულობს მრავალ პარამეტრს ამ გზით, მაგრამ არ კითხულობს პარამეტრულ ფაილებს, საჭიროა მხოლოდ ორი ხაზის დამატება, რომ მისცეთ მას ეს შესაძლებლობა. იმის სანახავად, თუ როგორ კეთდება ეს, უბრალოდ გადახედეთ ნებისმიერი სტანდარტული MySQL კლიენტის წყაროს კოდს.

  • თარგმანი

საკმაოდ ძველი სტატიის უფასო თარგმანი MySQL Performance Blog-იდან იმის შესახებ, თუ რა არის საუკეთესო კონფიგურაციისთვის mySQL-ის ძირითადი ვერსიის დაყენებისთანავე.

გასაოცარია, რამდენი ადამიანი დააინსტალირებს mySQL-ს თავის სერვერებზე და ტოვებს მას ნაგულისხმევი პარამეტრებით.

იმისდა მიუხედავად, რომ mySQL-ში საკმაოდ ბევრი პარამეტრია, რომელთა შეცვლაც შეგიძლიათ, არსებობს მართლაც ძალიან მნიშვნელოვანი მახასიათებლების ნაკრები, რომელიც უნდა იყოს ოპტიმიზირებული თქვენი საკუთარი სერვერისთვის. ჩვეულებრივ, ასეთი მცირე შესწორებების შემდეგ, სერვერის მუშაობა შესამჩნევად იზრდება.

  • გასაღები_ბუფერი_ზომა- ძალიან მნიშვნელოვანი პარამეტრი MyISAM ცხრილების გამოყენებისას. დააყენეთ ის ხელმისაწვდომი ოპერატიული მეხსიერების დაახლოებით 30-40%-ზე, თუ იყენებთ მხოლოდ MyISAM-ს. სწორი ზომა დამოკიდებულია ინდექსების ზომაზე, მონაცემებზე და სერვერზე დატვირთვაზე - გახსოვდეთ, რომ MyISAM იყენებს ოპერაციული სისტემის (OS) ქეშს მონაცემების შესანახად, ასე რომ თქვენ უნდა დატოვოთ საკმარისი ოპერატიული მეხსიერება მონაცემებისთვის და მონაცემებმა შეიძლება მნიშვნელოვნად მეტი ადგილი დაიკავოს, ვიდრე ინდექსები. თუმცა, დარწმუნდით, რომ შეამოწმეთ დირექტივით გამოყოფილი ყველა სივრცე გასაღები_ბუფერი_ზომაქეშისთვის, მუდმივად გამოიყენებოდა - ხშირად შეგიძლიათ ნახოთ სიტუაციები, როდესაც ინდექსის ქეშისთვის არის გამოყოფილი 4 გბ, თუმცა ყველა .MYI ფაილის საერთო ზომა არ აღემატება 1 გბ-ს. ამის გაკეთება სრულიად უსარგებლოა. თუ პრაქტიკულად არ გაქვთ MyISAM ცხრილები, მაშინ გასაღები_ბუფერი_ზომაუნდა დაყენდეს დაახლოებით 16-32 მბ-ზე - ისინი გამოყენებული იქნება დისკზე შექმნილი დროებითი ცხრილების ინდექსების შესანახად მეხსიერებაში.
  • innodb_buffer_pool_size- თანაბრად მნიშვნელოვანი პარამეტრი, მაგრამ InnoDB-სთვის, აუცილებლად მიაქციეთ ყურადღება, თუ ძირითადად აპირებთ InnoDB ცხრილების გამოყენებას, რადგან ისინი ბევრად უფრო მგრძნობიარეა ბუფერული ზომის მიმართ, ვიდრე MyISAM ცხრილები. MyISAM ცხრილებს, პრინციპში, შეუძლიათ კარგად იმუშაონ მონაცემთა დიდი რაოდენობითაც კი და სტანდარტული მნიშვნელობით გასაღები_ბუფერი_ზომა, თუმცა mySQL შეიძლება იყოს ძალიან ნელი, თუ მნიშვნელობა არასწორია innodb_buffer_pool_size. InnoDB იყენებს საკუთარ ბუფერს ინდექსების და მონაცემების შესანახად, ამიტომ არ არის საჭირო მეხსიერების დატოვება OS ქეშისთვის - დააინსტალირეთ innodb_buffer_pool_sizeხელმისაწვდომი ოპერატიული მეხსიერების 70-80%-ში (თუ, რა თქმა უნდა, გამოიყენება მხოლოდ InnoDB ცხრილები). რაც შეეხება ამ ვარიანტის მაქსიმალურ ზომას - ანალოგიურად გასაღები_ბუფერი_ზომა- ნუ გაიტაცებთ, თქვენ უნდა იპოვოთ ოპტიმალური ზომა, იპოვოთ ხელმისაწვდომი მეხსიერების საუკეთესო გამოყენება.
  • innodb_additional_mem_pool_size- ეს ვარიანტი პრაქტიკულად არანაირ გავლენას არ ახდენს mySQL-ის მუშაობაზე, მაგრამ გირჩევთ დატოვოთ დაახლოებით 20 მბ (ან ცოტა მეტი) InnoDB-სთვის სხვადასხვა შიდა საჭიროებისთვის.
  • innodb_log_file_size- უაღრესად მნიშვნელოვანი პარამეტრი მონაცემთა ბაზებში ხშირი ჩაწერის ოპერაციებით ცხრილებზე, განსაკუთრებით დიდი მოცულობით. ბ უფრო დიდი ზომები ზრდის შესრულებას, მაგრამ ფრთხილად იყავით - ასევე გაიზრდება მონაცემთა აღდგენის დრო. მე ჩვეულებრივ ვაყენებ დაახლოებით 64-512 მბ-ზე, სერვერის ზომის მიხედვით.
  • innodb_log_buffer_size- ამ ვარიანტის სტანდარტული მნიშვნელობა საკმაოდ შესაფერისია უმეტეს სისტემებისთვის, ჩაწერის ოპერაციების საშუალო რაოდენობით და მცირე ტრანზაქციებით. თუ თქვენი სისტემა განიცდის აქტიურობის პერიოდს, ან აქტიურად მუშაობთ BLOB მონაცემებთან, მაშინ გირჩევთ ოდნავ გაზარდოთ მნიშვნელობა innodb_log_buffer_size. თუმცა, არ გადააჭარბოთ - ძალიან დიდი მნიშვნელობა იქნება მეხსიერების ფუჭად დაკარგვა: ბუფერი იშლება ყოველ წამში, ასე რომ თქვენ არ დაგჭირდებათ მეტი სივრცე, ვიდრე საჭიროა ამ წამის განმავლობაში. რეკომენდებული მნიშვნელობა არის დაახლოებით 8-16 MB, ხოლო მცირე მონაცემთა ბაზებისთვის კიდევ უფრო ნაკლები.
  • - ჩივით, რომ InnoDB 100-ჯერ უფრო ნელია ვიდრე MyISAM? თქვენ ალბათ დაგავიწყდათ პარამეტრი innodb_flush_log_at_trx_commit. 1-ის ნაგულისხმევი მნიშვნელობა ნიშნავს, რომ ყოველი UPDATE ტრანზაქცია (ან მსგავსი არატრანზაქციული ბრძანება) უნდა ჩამოიბანოს ბუფერი დისკზე, რაც საკმაოდ რესურსზე ინტენსიურია. აპლიკაციების უმეტესობა, განსაკუთრებით ის, ვინც ადრე იყენებდა MyISAM ცხრილებს, კარგად იმუშავებს "2" მნიშვნელობით (ანუ "არ გადაიტანოთ ბუფერი დისკზე, მხოლოდ ოპერაციული სისტემის ქეში"). თუმცა, ჟურნალი დისკზე ყოველ 1-2 წამში ერთხელ გაირეცხება, ასე რომ ავარიის შემთხვევაში თქვენ დაკარგავთ მაქსიმუმ 1-2 წამის განახლებებს. მნიშვნელობა "0" გააუმჯობესებს შესრულებას, მაგრამ თქვენ რისკავთ მონაცემების დაკარგვას მაშინაც კი, თუ mySQL სერვერი ავარიულია, მნიშვნელობის დაყენებისას innodb_flush_log_at_trx_commit"2"-ში თქვენ დაკარგავთ მონაცემებს მხოლოდ იმ შემთხვევაში, თუ მთელი ოპერაციული სისტემა დაიშლება.
  • მაგიდა_ქეში- ცხრილების გახსნა შეიძლება იყოს საკმაოდ რესურსი. მაგალითად, MyISAM ცხრილები აღნიშნავს .MYI ფაილების სათაურებს, როგორც „ამჟამად გამოიყენება“. ზოგადად არ არის კარგი მაგიდების ძალიან ხშირად გახსნა, ამიტომ უმჯობესია გქონდეთ საკმარისად დიდი ქეში, რომ თქვენი ყველა მაგიდა ღია იყოს. ეს იყენებს ზოგიერთ OS რესურსს და RAM-ს, მაგრამ ეს ჩვეულებრივ არ არის მნიშვნელოვანი პრობლემა თანამედროვე სერვერებზე. თუ თქვენ გაქვთ რამდენიმე ასეული ცხრილი, მაშინ ვარიანტის საწყისი მნიშვნელობა მაგიდა_ქეშიშეიძლება იყოს "1024" (გახსოვდეთ, რომ თითოეული კავშირი მოითხოვს საკუთარ სახელურს). თუ თქვენ გაქვთ კიდევ მეტი ცხრილი ან ბევრი კავშირი, გაზარდეთ პარამეტრის მნიშვნელობა. ვნახე mySQL სერვერი მნიშვნელობით მაგიდა_ქეშიუდრის 100000-ს.
  • თემა_ქეში- ძაფების შექმნა/განადგურება ასევე რესურსზე ინტენსიური ოპერაციაა, რომელიც ხდება ყოველ ჯერზე, როცა კავშირი დამყარდება და ყოველი კავშირი წყდება. მე ჩვეულებრივ ვაყენებ ამ პარამეტრს 16-ზე. თუ თქვენს აპლიკაციას შეიძლება ჰქონდეს ნახტომი ერთდროულად კავშირების რაოდენობაში და ცვლადის მიხედვით თემები_შექმნილიათუ ხედავთ ძაფების რაოდენობის სწრაფ ზრდას, მაშინ უნდა გაზარდოთ მნიშვნელობა თემა_ქეში. მიზანია თავიდან აიცილოს ახალი თემების შექმნა სერვერის ნორმალური მუშაობის დროს.
  • query_cache_size- თუ თქვენი აპლიკაცია ბევრს და ხშირად კითხულობს მონაცემებს და არ გაქვთ აპლიკაციის დონის ქეში, ეს ვარიანტი შეიძლება იყოს ძალიან სასარგებლო. არ დააყენოთ ეს მნიშვნელობა ძალიან მაღალი, რადგან დიდი მოთხოვნის ქეშის შენარჩუნება თავისთავად ძვირი იქნება. რეკომენდებული მნიშვნელობა არის 32-დან 512 მბ-მდე. არ დაგავიწყდეთ შეამოწმოთ რამდენად კარგად გამოიყენება შეკითხვის ქეში - ზოგიერთ პირობებში (ქეშში დარტყმების მცირე რაოდენობით, ანუ, როდესაც თითქმის არ არის იდენტური მონაცემების მიღება) დიდი ქეშის გამოყენებამ შეიძლება შეამციროს შესრულება.
როგორც ხედავთ, ეს არის გლობალური პარამეტრები. ეს ცვლადები დამოკიდებულია სერვერის აპარატურაზე და გამოყენებულ MySQL ძრავებზე, ხოლო სესიის ცვლადები ჩვეულებრივ კონფიგურირებულია სპეციალურად კონკრეტული ამოცანებისთვის. თუ ძირითადად იყენებთ მარტივ შეკითხვებს, მაშინ არ არის საჭირო მნიშვნელობის გაზრდა დალაგება_ბუფერული_ზომა, მაშინაც კი, თუ თქვენ გაქვთ დამატებითი 64 GB ოპერატიული მეხსიერება. უფრო მეტიც, ქეშის დიდ მნიშვნელობებს შეუძლიათ მხოლოდ სერვერის მუშაობის დაქვეითება. უმჯობესია სესიის ცვლადები მოგვიანებით დატოვოთ, სერვერის დაზუსტებისთვის.

PS: mySQL ინსტალაციას მოყვება რამდენიმე წინასწარ დაინსტალირებული my.cnf ფაილი, რომლებიც განკუთვნილია სხვადასხვა დატვირთვისთვის. თუ არ გაქვთ დრო სერვერის ხელით კონფიგურაციისთვის, მაშინ, როგორც წესი, უმჯობესია გამოიყენოთ ისინი, ვიდრე სტანდარტული კონფიგურაციის ფაილი, აირჩიოთ ის, რომელიც უფრო შესაფერისია თქვენი სერვერის დატვირთვისთვის.

MySQL-ის დაყენება ძირითადად მოიცავს ძირითადი კონფიგურაციის ფაილის რედაქტირებას (/etc/my.cnf FreeBSD-ზე). დაყენებამდე, გთხოვთ გაითვალისწინოთ, რომ MySQL 5.6-ში ზოგიერთი პარამეტრის სახელები და მათი ხელმისაწვდომობა განსხვავდება წინა ვერსიებისაგან გამოყენებული.

MySQL 5.6 - my.cnf-ის კონფიგურაცია

იმისთვის, რომ ცვლილებები my.cnf ფაილში ამოქმედდეს, თქვენ უნდა გადატვირთოთ MySQL სერვერი:

/usr/local/etc/rc.d/mysqld გადატვირთვა

თქვენ შეგიძლიათ შეამოწმოთ არის თუ არა ახალი პარამეტრები მიღებული სერვერის მიერ მონაცემთა ბაზის შეკითხვის გამოყენებით:

mysql> WARIABLE-ების ჩვენება;

მხოლოდ გარკვეული პარამეტრების სანახავად, თქვენ უნდა მიუთითოთ მოთხოვნა. მაგალითად, max_connections პარამეტრის სანახავად თქვენ უნდა გაგზავნოთ შემდეგი მოთხოვნა MySQL-ზე: mysql > ცვლადების ჩვენება, როგორიცაა "max _conn%";

თუ გადატვირთვის შემდეგ ცვლილებები ნაწილობრივ გამოიყენება ან არ მიიღება MySQL სერვერის მიერ, შეამოწმეთ არის თუ არა არასწორი ფაილი რედაქტირებული ან MySQL დამატებით იტვირთება სხვა კონფიგურაციის ფაილი, რომლის დირექტივები ხელახლა ანიჭებს თქვენს მიერ შეცვლილ პარამეტრებს. მაგალითად, DirectAdmin ჰოსტინგის მართვის პანელის ინსტალაციისას, MySQL სერვერი დაინსტალირებულია ავტომატურად და შეიცავს 2 კონფიგურაციის ფაილს: /etc/my.cnf და დამატებით ჩატვირთულს /usr/local/mysql/my.cnf. sql_mode პარამეტრის შეცვლამ /etc/my.cnf-ში, დიდი ხნის განმავლობაში ვერ გავიგე, რატომ არ იყო გამოყენებული MySQL სერვერზე, როგორც იქნა, გადაიდო /usr/local/mysql/my.cnf (; FreeBSD) ან /usr/my (CentOS). თქვენ შეგიძლიათ იპოვოთ MySQL-ში გამოყენებული ყველა my.cnf ფაილის სია საძიებო სისტემაში შეკითხვის შეყვანით: "my.cnf location".

პარამეტრების სრული სია, რომლებიც გამოიყენება my.cnf-ში, შეგიძლიათ იხილოთ MySQL მომხმარებლის ოფიციალურ სახელმძღვანელოში (eng), Option File სვეტში.

პარამეტრები განყოფილებაში

local_infile

ეს ცვლადი შეიძლება იყოს ჩართული (ჩართვა ან 1 - ნაგულისხმევი) ან გამორთული (OFF ან 0), რათა გამოიყენოს LOCAL LOAD DATA მოთხოვნაში. თუ არ იცით ზუსტად რა არის და რატომ არის საჭირო, მკაცრად რეკომენდირებულია გადართოთ local_infile OFF-ზე (local_infile=OFF) მთლიანი სერვერის უსაფრთხოების მიზეზების გამო.

skip_external_locking

skip_external_locking - პარამეტრი, რომელიც პასუხისმგებელია MyISAM ტიპის მონაცემთა ბაზის ფაილების გარე ჩაკეტვაზე (ნაგულისხმევად დაყენებულია ON - ჩაკეტვა ჩართულია). მიზანშეწონილია არ შეცვალოთ ეს პარამეტრი MySQL სერვერის მუშაობის მიზეზების გამო.

skip_name_resolve

თუ skip_name_resolve პარამეტრი დაყენებულია ON ან 1 (skip_name_resolve=OFF - ნაგულისხმევად), მაშინ MySQL-თან გარე დაკავშირებისას სერვერი ცდილობს დომენის სახელი გადათარგმნოს IP მისამართად, რაც მნიშვნელოვნად ამცირებს მოთხოვნის დამუშავების სიჩქარეს. მუშაობის გასაუმჯობესებლად რეკომენდებულია skip_name_resolve დაყენება OFF-ზე, ამ შემთხვევაში მხოლოდ IP მისამართი ან ლოკალჰოსტი შეიძლება გამოყენებულ იქნას როგორც ჰოსტი MySQL-თან დაკავშირებისას.

დაბალი_პრიორიტეტული_განახლებები

ნაგულისხმევად, MySQL განცხადებებს, როგორიცაა INSERT, REPLACE, UPDATE, DELETE, უფრო მაღალი პრიორიტეტი აქვთ, ვიდრე, მაგალითად, SELECT და low_priority_updates პარამეტრი შესაბამისად დაყენებულია OFF-ზე. თუ თქვენი სერვერი აგზავნის უფრო მეტ კითხვას, ვიდრე ცვლილებებს ცხრილის მონაცემებში, შეგიძლიათ დააყენოთ low_priority_updates-ზე ON. უნდა აღინიშნოს, რომ low_priority_updates ვრცელდება მხოლოდ MyISAM, MEMORY და MERGE ცხრილების ტიპებზე.

sql_mode

MySQL სერვერის მუშაობა დიდად არის დამოკიდებული sql_mode-ში მითითებულ პარამეტრებზე. პარამეტრების არასწორად დაზუსტებამ შეიძლება მთლიანად შეაჩეროს საიტის მუშაობა MySQL-ის გამოყენებით, გამოიწვიოს მონაცემთა ბაზაში არასწორი პარამეტრების ჩასმა და სხვა პრობლემები. მეტი sql_mod-ის შესახებ შეგიძლიათ წაიკითხოთ აქ: Server SQL Modes 5.6 (eng).

ნაგულისხმევად, MySQL 5.6.6 და უფრო გვიან ვერსიებში, sql_mode დაყენებულია NO_ENGINE_SUBSTITUTION ( sql_mode=NO_ENGINE_SUBSTITUTION), რომელიც საკმარისი იქნება საიტების უმეტესობისთვის, მაგრამ მაინც, იმის გასაგებად, თუ როგორ მუშაობს MySQL, ასევე უნდა იცოდეთ MySQL მუშაობის სხვა გზების შესახებ, დაყენებული sql_mode-ში.

max_connections

ეს პარამეტრი პასუხისმგებელია MySQL-თან ერთდროული კავშირების მაქსიმალურ დასაშვებ რაოდენობაზე. ნაგულისხმევად, მისი მნიშვნელობა არის 151 და შეიძლება შეიცვალოს 1-დან 100000-მდე. ეს მნიშვნელობა უნდა გაიზარდოს, თუ გამოჩნდება შეცდომა „ძალიან ბევრი კავშირი“ ან ადმინისტრატორი დარწმუნებულია, რომ ნაგულისხმევი მნიშვნელობა არ იქნება საკმარისი.

შეკითხვა_ქეში_ტიპი

query_cache_type მნიშვნელობა რთავს (ON) ან გამორთავს (OFF) შეკითხვის ქეშირებას. ქეშირება კარგი გზაა დატვირთვის შესამცირებლად, თუ სერვერი ამუშავებს ბევრ იდენტურ მოთხოვნას. თქვენ თითქმის ყოველთვის უნდა გამოიყენოთ query_cache_type, გარდა იმ შემთხვევებისა, როდესაც MySQL მოთხოვნები ქეშირებულია memcached-ით.

query_cache_size

MySQL შეკითხვის ქეშის ზომა. მნიშვნელობა შეიძლება დაიწეროს Mb - query_cache_size=32M .

პარამეტრები MyISAM ცხრილებისთვის

გასაღები_ბუფერი_ზომა

თუ გამოიყენება მხოლოდ ცხრილები MyISAMბუფერის ზომა უნდა იყოს დაყენებული RAM-ის ხელმისაწვდომი ზომის დაახლოებით 30-35%. თუ MyISAM ცხრილები ძალიან ცოტაა ან საერთოდ არ არის, მაშინ გასაღები_ბუფერი_ზომაშეიძლება დაყენდეს 32 მბ-ზე, სივრცე გამოყენებული იქნება დისკზე შექმნილი დროებითი ცხრილების მეხსიერებაში ინდექსების შესანახად. მეხსიერების ზომის არჩევანი key_buffer_size-ისთვის დამოკიდებულია ინდექსების, მონაცემებისა და სერვერის დატვირთვის ზომაზე. თქვენ უნდა იცოდეთ, რომ MyISAM იყენებს ოპერაციული სისტემის ქეშს მონაცემთა შესანახად, ასე რომ თქვენ უნდა დატოვოთ საკმარისი ოპერატიული მეხსიერება. მონაცემებმა შეიძლება მნიშვნელოვნად მეტი ადგილი დაიკავოს, ვიდრე ინდექსები. თუმცა, ღირს იმის შემოწმება, რომ ქეშისთვის key_buffer_size-ში მითითებული მთელი მეხსიერება მუდმივად გამოიყენება, წინააღმდეგ შემთხვევაში ეს იქნება რესურსების დაკარგვა.

პარამეტრები InnoDB ცხრილებისთვის

innodb_buffer_pool_size

innodb_buffer_pool_size- InnoDB ცხრილის ბუფერის ზომა. აკრიფეთ ცხრილები InnoDBგამოიყენონ საკუთარი ბუფერი ინდექსებისა და მონაცემების შესანახად, ასე რომ, არ არის საჭირო მეხსიერების დატოვება ოპერაციული სისტემის ქეშისთვის, დააყენეთ innodb_buffer_pool_size ხელმისაწვდომი ოპერატიული მეხსიერების 75%-მდე, თუ გეგმავთ მხოლოდ InnoDB ტიპის ცხრილების გამოყენებას. ამ ვარიანტის მაქსიმალური ზომის რეკომენდაციები მსგავსია key_buffer_size-ის MyISAM-ისთვის: არ უნდა დააყენოთ მაქსიმალური ზომა, უნდა იპოვოთ ოპტიმალური ვარიანტი და ხელმისაწვდომი ოპერატიული მეხსიერება შეიძლება გამოყენებულ იქნას სხვა ამოცანებში.



გაქვთ შეკითხვები?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: