![]() |
שאלה על מסד נתונים
רציתי לדעת עם כדי לפתוח cache במסד נתונים שאתה מריץ משחק און ליין
או בכלל אסור לפתוח? כי במידה וסרביס נופל או שרת עושה רייסט המידע שיש הוא נאבד או לא? ומה עדיף להריץ בשביל משחק און ליין Myisam או Innodb ? |
innodb - חד משמעית, מבחינתי היום זה רק זה ואין כל שימוש ל MYISAM.
לגבי הקאש, כל עוד המידע שאתה עושה עליו קאש, הוא לא מידע רלוונטי שמשפיע על מהלך המשחק, אז תעשה לו קאש. אל תשכח לפתוח אינדקסים היכן שחשוב ולהשתמש ב relation איפה שצריך לחסוך לך קודים ולעשות אופטימיזציה מלאה. |
תודה.
|
לגבי innodb !!! מומלץ להשתמש בו במידה והטבלה שלך מבצעת הרבה שאילתות Update או Insert מכיוון שבזמן עדכון טבלה ננעלת רק השורה עליה מתבצע העדכון ולא כל הטבלה.
לגבי שליפת נתונים MYISAM יותר מהיר!!! ועוד משהו!!! במידה ואתה יוצר אינדקסים על טבלה עם מנוע innodb כך בחשבון שהיא תיהיה יותר גדולה מבחינת גודל האחסון. במקרה אתמול הפכתי טבלה של 450M למנוע innodb ובגלל האינדקסים הטבלה שקלה 850MB ולגבי מהירות לא היה שינוי לטובה אז החזרתי אותה למנוע MYISAM! לגבי טבלה ל-cache לדעתי תשתמש עם מנוע מסוג MEMORY... מדובר במנוע שיוצר טבלאות שנמצאות רק בזכרון ה-RAM של ה-MySQL. ברגע שה-MySQL עובר restart מסיבה מסוימת אז כל המידע שיש בטבלה נמחק (אך המבנה נשמר). כיוון שהטבלה נמצאת ב-RAM, הביצועים שלה מצויינים. מומלץ מאד להשתמש במנוע זה עבור מידע זמני שלא חשוב שהוא יישאר במסד הנתונים במשך זמן רב. בנוסף אם אתה מעוניין בביצועים טובים אז אתה צריך לקנפג נכון my.cnf לפי הגדרות השרת שלך. |
בטעות הודעה כפולה!
|
ציטוט:
בקשר ל MEMORY, לא ממליץ להשתמש במשחקי דפדפן. זה יאכל לך את הזכרון של השרת וגם נפילה מזערית של השרת תאבד לך נתונים, והמשחק יהיה כשלון. |
ציטוט:
לגבי cache במידה והוא משתמש עם תוספים כאלו ובטח לא לגבי טבלאות של המשחק עצמו כי מן הסתם זה נמחק בכל פעם שמפעילים את הסרוויס של MYSQLD. אבל יעבוד הרבה הרבה יותר מהר זה בטוח! ובכל מקרה לא נראה לי שהוא מתכנן לעשות ריסט לשרת כל שנייה וחצי כי זה לא הייעוד של שרת. כשהכל מקונפג ועובד טוב אז אין צורך בריסט גם לשנה+ |
ציטוט:
|
תודה על העזרה, העברתי את המסד מ MyISAM ל InnoDB ולא הרגשתי שום שינוי זה נשאר אותו דבר עכשיו ששאלתי עם מומלץ להשתמש ב cahce במכיוון שעשיתי רייסט לסרביס mariadb ונעלמו לי דברים במשחק שזה די הרס אותו (נעלמו דברים קריטים), הייתי רוצה לקבל ממכם חוות דעת על הקונפיג שעשיתי
השרת שאני משתמש הוא xeon 1245 v3 , 32GB , raid5 ssd 120GB אני משתמש ב nginx, mariadb והקונפיג הולך אצלי ככה [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-federated skip-archive skip-blackhole wait_timeout = 30 max_heap_table_size = 256M default-storage-engine = InnoDB slow_query_log=0 long_query_time = 2 slow_query_log_file=/var/lib/mysql/slowq.log log-error=/var/log/mysqld.log # innodb settings innodb_doublewrite = 1 innodb_file_per_table = 1 innodb_data_file_path= ibdata1:10M:autoextend innodb_log_files_in_group = 2 innodb_flush_log_at_trx_commit = 2 innodb_thread_concurrency = 0 innodb_lock_wait_timeout=50 innodb_support_xa=1 # DISKS innodb_io_capacity = 500 innodb_read_io_threads = 8 innodb_write_io_threads = 8 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd [mariadb-5.5] innodb_log_block_size = 512 log_slow_filter =admin,filesort,filesort_on_disk,full_join,full_sc an,query_cach$ [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # !includedir /etc/my.cnf.d |
ציטוט:
תריץ MySQLTuner (יעזור לך מאוד בכדי לדעת מה אתה צריך להגדיר בקינפוג של MYSQL לפי גודל בסיסי הנתונים ולפי איך שזה רץ) * אם אתה לא מכיר את הערכים של הגדרות mysql לא מומלץ לשנות לפני שתקרא את המשמעות של כל ערך שאתה משנה. |
כל הזמנים הם GMT +2. הזמן כעת הוא 15:54. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ