View Full Version : سوال: بهینه سازی
mohsen_31369
پنج شنبه 02 شهریور 1391, 12:18 عصر
با سلام
آیا موقع insert مابقی query ها مانند select و ... منتظر می مانند تا insert تمام شود بعد دستورات دیگر اجرا می شود ؟
اگر به این صورت است برای سایت هایی مانند همین فروم یا ... چی کار می کنن تا سرعت سایت حفظ بماند؟
miladamirzadeh
شنبه 04 شهریور 1391, 23:47 عصر
بله. همه اینا به MySQL ربط داره. سرعت اجرا بالاست. بسته به مقیاسی که شما می خوای کار کنی راه حل های متنوعی وجود داره. ضمناً سرعت این فروم بالا نیست. سرعت فیس بوک رو نگاه کن. می گن دیتابیس های اون MySQL اه. ولی با این حجم پردازش سرعت بالایی داره!
mohsen_31369
سه شنبه 07 شهریور 1391, 21:04 عصر
خوب سایتی مثله فیس بوک چی کار می کنه؟
miladamirzadeh
پنج شنبه 09 شهریور 1391, 11:13 صبح
می گن فیس بوک 1200 تا سرور MySQL داره! البته آمار قدیمیه! کلاستر کردن یک راهشه! ثانیاً میشه با گذاشتن ایندکس و تغییر در شیوه نگاه به دیتابیس رابطه ای و تغییر کوئری های زمانگیر به خیلی از این مشکلات غلبه کرد.
mohsen_31369
یک شنبه 12 شهریور 1391, 17:34 عصر
تغییر در شیوه نگاه به دیتابیس رابطه ای
میشه این مورد را کمی بیشتر توضیح بدید یا لینک مقاله یا کتابی که این مورد را توضیح می دهد قرار دهید
miladamirzadeh
دوشنبه 13 شهریور 1391, 08:14 صبح
سلام. تو یه پروژه کار می کردم که مجبور شدیم به خاطر افزایش سرعت یکی از اصول دیتابیس های رابطه ای رو زیر پا بذاریم. اصل عدم افزونگی داده. ما داده ها رو تکرار کردیم! از نظر فنی احتمالاً غلطه! ولی اون چیزی که مطمئنم توی کارهای خیلی بزرگ و پیچیده نگاه رابطه ای عملاً بازدهی رو پایین میاره. مثلاً در مورد دیتابیسی که گوگل استفاده می کنه یه سرچ بزن. متوجه می شی که گوگل از این مدل استفاده نمی کنه.
http://www.readwriteweb.com/enterprise/2009/02/is-the-relational-database-doomed.php
http://stackoverflow.com/questions/362956/what-database-does-google-use
tdkhakpur
دوشنبه 13 شهریور 1391, 14:15 عصر
آیا موقع insert مابقی query ها مانند select و ... منتظر می مانند تا insert تمام شود بعد دستورات دیگر اجرا می شود ؟اگه نظرتون اینه که کلاینت منتظر میمونه بله منتظر میمونه اما اگه بحثوتون تو سرور باشه خیر منتظر نمی مونه (البته در حالت کرنل دیتابیس انتظار معنی نداره) .
سرور mysql خودش هر تقاضای که ازش میشه رو ترد کرده و اونا رو تو صف اجرا قرار میده و همزمان با اجرای صف از صف دیگه تقاضاهای دیگه رو میگیره.
mohsen_31369
دوشنبه 13 شهریور 1391, 17:51 عصر
سلام. تو یه پروژه کار می کردم که مجبور شدیم به خاطر افزایش سرعت یکی از اصول دیتابیس های رابطه ای رو زیر پا بذاریم. اصل عدم افزونگی داده.
خوب نتیجه ش تو سرعت سایت تاثیر داشت
مثلاً در مورد دیتابیسی که گوگل استفاده می کنه یه سرچ بزن. متوجه می شی که گوگل از این مدل استفاده نمی کنه.
بعید بدونم معماری بیگ تیبل رو با مای اس کیول بشه اجرا کرد. به نظرت از api گوگل استفاده کنیم ارزش داره ؟؟
miladamirzadeh
دوشنبه 13 شهریور 1391, 18:23 عصر
به نظرت از api گوگل استفاده کنیم ارزش داره ؟؟
گوگل رو نمی شناسم. اما ....
اما اگه بحثوتون تو سرور باشه خیر منتظر نمی مونه
آیا از این گفته مطمئن هستید؟ خواص ACID؟ MySQL با موتور InnoDB خواص ACID را تضمین نمی کنه. (آیا ربطی داره؟) من تجربه ی خودمو گفتم. تو اینزرت های طولانی میشه دید. بعضی SELECT ها به صورت اتوماتیک جداول و سایر Query ها رو Lock می کنند. انتظار برای باز شدن Lock جدول هست. از بخش MySQL Administration در MySQL Workbench استفاده کنیم می تونیم متوجه این موضوع بشیم. اگر بتونید مقاله ای از MySQL در این مورد معرفی کنید ممنون می شم. پیشنهادم طراحی یک آزمایش برای تست واقعیت های MySQL هست.
tdkhakpur
دوشنبه 13 شهریور 1391, 19:22 عصر
آیا از این گفته مطمئن هستید؟ خواص ACID؟ MySQL با موتور InnoDB خواص ACID را تضمین نمی کنه. (آیا ربطی داره؟) من تجربه ی خودمو گفتم. تو اینزرت های طولانی میشه دیداین موضوع به محدودیتهایی که شما برای تنظیمات سرور انجام میدیده داره اگه تعداد کلاینتها رو در سرو مشخص کنید سرور با رسیدن به حداکثر این مقدار مجبور میشه صف انتظار برای تراکنشها قرار بده که در اون صورت این توقف ها میتونه احساس بشه.
بعضی SELECT ها به صورت اتوماتیک جداول و سایر Query ها رو Lock می کنند. انتظار برای باز شدن Lock جدول هستهمه موارد زیربنای بانکهای اطلاعاتیه که lock هم یکی از اونهاست اما اگه اینجا بحث سرور در میان باشه این ارتباظ مستقیم به کلاینت داره که چطوری با سرور ارتباط برقرار میکنه در اون موردی که شما اشاره کردید اگه نیاز هست که جدول قفل بشه باید دستور قفل جدول از طرف کلاینت به سرور فرستاده بشه وگرنه سرور بیخودی جدول یا هر سکتوری از دیتاهای روی هارد رو توی سرور لاک نمیکنه.
زیربنای بانکهای اطلاعاتی (http://barnamenevis.org/showthread.php?240356-irdataBase-%D8%B2%DB%8C%D8%B1%D8%A8%D9%86%D8%A7%DB%8C-%D8%A8%D8%A7%D9%86%DA%A9%D9%87%D8%A7%DB%8C-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA%DB%8C)
mohsen_31369
چهارشنبه 15 شهریور 1391, 13:54 عصر
خوب در صورت زیاد بودن تراکنش ها کلاینت ها باید منتظر بمانند.
چه کار کنیم که این انتظار کم شود. مثل سایت فیس بوک
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.