PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : left join یا چند کوئری ؟



hoka
January 25th, 2018, 15:28
سلام دوستان


بنده یک سیستمی دارم مینویسیم که برای یه بخش نیاز دارم از چند تیبل اسم هایی که به صورت id در یک تیبل زدم رو در بیارم . mysql

مثال

table post

ID num1ID num2ID num3ID num4ID
1 1 1 1 1

num1 table
ID NAME
1 اسم


و الی آخر


آیا برای اینکه این مورد رو انجام بدم و تک تک اسم های اون تیبل پست رو از الباقی تیبل ها خارج کنم left join بهتر هست یا مولتی کوئری ؟ هم از نظر سرعت و هم از نظر منابع سرور

دقت کنید تعداد تیبل ها زیاد هست + اینکه ممکنه از یک تیبل دو خط ( دو اسم ) رو بخوام دربیارم

ErbHosting
January 25th, 2018, 15:33
صد در صد left join بهتر از چند کوئری هست و سرعت بیشتری داره

hoka
January 25th, 2018, 15:40
صد در صد left join بهتر از چند کوئری هست و سرعت بیشتری داره

حتی در حالتی که از چند جدول مختلف قرار هست چیز های مخلفی ایکوال بشه و بعد خارج بشه ؟ در حالی که در مولتی کوئری میتونم فقط با آی دی اون هارو به دست بیارم ؟

k-pax
January 25th, 2018, 17:07
اگر تیبل هات با هم در ارتباط باشن که باید از join استفاده کنید
اما اگه تیبلتهات هیچ ارتباطی با هم ندارم باید برای هرکدوم یه کوئری بزنی

join برای زمانی هسست که دو یا چند تیبل با هم در ارتباط هستند
مثل همزمان که تیبل post را میگیره تیبل commonts هم باهاش جوین کنید

ErbHosting
January 25th, 2018, 18:25
حتی در حالتی که از چند جدول مختلف قرار هست چیز های مخلفی ایکوال بشه و بعد خارج بشه ؟ در حالی که در مولتی کوئری میتونم فقط با آی دی اون هارو به دست بیارم ؟

بله
اگر آیدی مشترک داری بهترین راه هست

T.Toosi
January 25th, 2018, 19:30
باسلام، ابتدا توضیح دهید چرا Left Join ? مگر سطر پیوند ناپذیر در جدول ها دارید ؟

hoka
January 26th, 2018, 03:08
اگر تیبل هات با هم در ارتباط باشن که باید از join استفاده کنید
اما اگه تیبلتهات هیچ ارتباطی با هم ندارم باید برای هرکدوم یه کوئری بزنی

join برای زمانی هسست که دو یا چند تیبل با هم در ارتباط هستند
مثل همزمان که تیبل post را میگیره تیبل commonts هم باهاش جوین کنید
ببینبد ارتباطشون فعلا در این مرحله فقط گرفتن اسم ها از تیبل های مختلف هست با استفاده از آی دی هایی که در تیبل پست وجود داره

بله
اگر آیدی مشترک داری بهترین راه هست
حتی اگر این لفت جوین خیلی از نظر دستوری سنگین بشه ؟ ( چون از چند تیبل چند خط گرفته میشه و اون خطوط هم خودشون باید مساوی باشن با چیز های دیگه ) ولی در اون حالت مولتی کوئری تنها کافیه ایکوال باشه با آی دی ای که بهش میدم .

باسلام، ابتدا توضیح دهید چرا Left Join ? مگر سطر پیوند ناپذیر در جدول ها دارید ؟

متوجه سطر پیوند ناپذیر نشدم در صحبتتون . توضیح میفرمایید ؟

hoka
January 26th, 2018, 22:40
بالا باش

ErbHosting
January 27th, 2018, 00:19
حتی اگر این لفت جوین خیلی از نظر دستوری سنگین بشه ؟ ( چون از چند تیبل چند خط گرفته میشه و اون خطوط هم خودشون باید مساوی باشن با چیز های دیگه ) ولی در اون حالت مولتی کوئری تنها کافیه ایکوال باشه با آی دی ای که بهش میدم .




شما برای اینکه متوجه شید کدوم بهتره مدت اجرا رو تست کنید
ببینید کدوم زودتر اجرا میشه
ولی در کل جوین کردن سرعت اجرای کوئری رو بهتر می کنه تا اینکه چند تا کوئری مختلف بزنید