آفلاین
user-avatar

performance در دیتابیس

PHP -
2 سال پیش
توسط حسین حسین پور آپدیت شد
آفلاین
user-avatar
حسین حسین پور ( 9366 تجربه )
2 سال پیش
تخصص : طراح رابط کاربری، برنامه‌نویس

سلام دوستان.
چند تا سوال داشتم درباره پرفورمنس دیتابیس . اول اینکه از دیتابیس mysql دارم استفاده میکنم. اگر دوستان تجربه با دیتابیس های دیگه و یا همچنین no-sql هم دارند لطفا به اشتراک بذارن. ممنون میشم.
آیا زیاد شدن تعداد ردیف ها روی عملکرد دیتابیس تاثیر منفی میذاره ؟
مثلا کوئری روی جدول های با 1 میلیون ردیف با مثلا 100 میلیون ردیف چقد میتونه تاثیر منفی بذاره؟ الان در پروژه خودم من یک جدول دارم با یک فیلد longtext که یک داده بزرگ رو به صورت json ذخیره کردم. و موقع select کردن با php اون رو decode میکنم که اگر بخوام این ستون رو به یک جدول دیگه انتقال بدم یک رابطه one-to-many شکل میگیره که حداقل به ازای هر ردیف جدول اول 300 ردیف برای جدول دوم تولید میشه. جدول اولمم خیلی بزرگه حدود یک میلیون ردیف . یعنی برای جدول دومم حداقل میشه 300 میلیون ردیف.
سوال دومم هم در قضیه نرمال کردن دیتابیس هستش که آیا join کردن جداول تاثیر منفی نداره و کوئری ها سنگین نمیشن؟
البته من از لاراول و elequent استفاده میکنم که همون طور که میدونید elequent تا موقعی که از متد join استفاده نکنیم در relationship ها برای هر relationship یک کوئری جدا تولید میکنه و حتی join هم نمیکنه که همین مسئله هم منو در نرمال کردن جداولم به شک انداخته.

آفلاین
user-avatar
علیرضا بیطاری ( 5245 تجربه )
2 سال پیش

تجربه‌ی شخصی بنده بین MySQL و MongoDB اینه که در insert و update خیلی سرعت MongoDB بیشتر هست (بعضی مواقع تا ۲۷ برابر) ولی در select و delete تفاوت اینقدر چشمگیر نیست (بیشتر از ۳ برابر تجربه نکردم)

آفلاین
user-avatar
مهدی طهرانی ( 18476 تجربه )
2 سال پیش
تخصص : cloud architect

@hhp14111
سلام دوست عزیز پیشنهاد میکنم از postgresql استفاده کنید هم برای استفاده رابطه ای هم برای استفاده از nosql میتونید از ستون های jsonb استفاده کنید که قابلیت های فوق العاده ای از جمله کوئری قوی و اندیس گذاری فوق العاده داره و این دیتابیس سال 2017 به عنوان بهترین دیتابیس شناخته شد.
پستگرس اکستنشن های زیاد و فوق العاده و قابل توسعه داره!

آفلاین
user-avatar
حسین حسین پور ( 9366 تجربه )
2 سال پیش
تخصص : طراح رابط کاربری، برنامه‌نویس

@haghft
کوئری قوی و اندیس گذاری که گفتید رو میشه بیشتر توضیح بدید.
من اصولا از دو نوع معمول index گذاری بیشتر استفاده نمیکنم. که اونم یکیش primary key برای گرفتن رکورد های single هستش و دومیش هم foreign-key برای گرفتن رکورد ها به صورت group از جدول مرتبط.
ولی خوب دیدم که mysql انواع index های بیشتری رو داره ولی دلیل استفادش رو نفهمیدم.
منظورم مفهوم index گذاریه که فکر میکنم در mysql و PostgreSQL یکی باشه.

برای ارسال پاسخ باید وارد سایت شوید