حسین حسین پور
6 سال پیش توسط حسین حسین پور مطرح شد
3 پاسخ

performance در دیتابیس

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


ثبت پرسش جدید
مهدی بیطاری
تخصص : طراح ui&ux
@beitari.alireza 6 سال پیش مطرح شد
0

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


مهدی طهرانی
تخصص : cloud architect
@mtehrani 6 سال پیش مطرح شد
1

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


حسین حسین پور
تخصص : طراح رابط کاربری، برنامه‌نویس
@hhp14111 6 سال پیش آپدیت شد
0

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


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام