PDA

View Full Version : چک کردن یک کوئری MYSQL



siavashsay
چهارشنبه 27 دی 1391, 20:50 عصر
دوستان !
بنده برای اینکه 2 تا کوئری رو در یک کوئری رو اجرا کنم از این کد استفاده کردم !

SELECT * FROM `tb_name1`,`tb_name2` WHERE `tb_name1`.`username`='$username' AND `tb_name2`.`username`='$username'
الان که داره درست کار میکنه !
میخوام بدونم کلا از لحاط اصولی این کد درست هست یا نه ؟!
ممنونم !

rezaonline.net
چهارشنبه 27 دی 1391, 21:10 عصر
این inner join هست
ساختار درستش

SELECT * FROM `tb_name1` inner join `tb_name2` WHERE `tb_name1`.`username`='$username' AND `tb_name2`.`username`='$username'
البته اینی که من نوشتم هم همچین درست نیست باید به جای * دقیق اسم فیلدهارو بنویسی ویلا کوئری سنگین میشه !

pani.khoram
چهارشنبه 27 دی 1391, 21:17 عصر
سلام ، ساختار نوشتن کوری صحیح است ولی حتما خوب می دونید که ، این query ها بیشتر در شکل استفاده و میزان و تعداد رکورد ها تاثیر گذاری خودشون رو نشون می دهند .
مثلا این شکل کوری نوشتن شما ، خیلی سریع تر از چند Inner join تو در تو است وقتی که تعداد رکورد ها بالا باشه .
موفق باشید .

Mohsen.
چهارشنبه 27 دی 1391, 21:18 عصر
فکر کنم با join هم میشه اینکارو کرد.

select * from table1 join table2 on (field1=field2) where id=id

siavashsay
چهارشنبه 27 دی 1391, 21:23 عصر
من کد رو گمونم از سایت tizag برداشتم !

البته اینی که من نوشتم هم همچین درست نیست باید به جای * دقیق اسم فیلدهارو بنویسی ویلا کوئری سنگین میشه !
ممنونم !
اما من به کل اطلاعات اون جدول ها نیاز دارم که * زدم !
این مشکلی داره ؟!

مثلا این شکل کوری نوشتن شما ، خیلی سریع تر از چند Inner join تو در تو است وقتی که تعداد رکورد ها بالا باشه . خوب یعنی کار من خوب هست یا بد بالاخره ؟ :قهقهه:

pani.khoram
چهارشنبه 27 دی 1391, 21:27 عصر
نه ، چرا مشکل داشته باشه ؟؟؟ دوتا بحث یکی برای خوانایی کد آره این شیوه سخت تر مخصوصا تو پروژه هایی که زیاد کلاس تو کلاس هستند و کار خودت رو سخت می کنه وگرنه شما هر دوتایه این انتخاب فیلد ها رو چه ستاره چه نام تک تک فیلد ها وقتی که لیست تمام فیلد هاتو می خوای بزنی هر دوتا یک زمان پاسخگویی خواهد داشت

siavashsay
چهارشنبه 27 دی 1391, 21:31 عصر
مثلا این شکل کوری نوشتن شما ، خیلی سریع تر از چند Inner join تو در تو است وقتی که تعداد رکورد ها بالا باشه .
راستش این جمله شما رو خوب متوجه نشدم !
این یعنی کد من سرعت اجراش خوب هست یا بد ؟!

rezaonline.net
چهارشنبه 27 دی 1391, 21:52 عصر
من جوین رو روی 4 تا جدول هم پیاده کردم اما فقط فیلدهای ضروری رو برگردوندم (* نذار حداقل 4 تا فیلد اضافه داری اینجا که روی 500 تا رکورد میشه چقد ؟)
سیاوش خان فکر کنم به مباحث بهینه سازی دیتابیس خیلی علاقه داری و از سوالات کاملا معلومه ، پس بهتره یه خوره تنبلی رو بذاری کنار:لبخند:
البته ببخشید کاملا دوستانه دارم میگم

pani.khoram
چهارشنبه 27 دی 1391, 22:59 عصر
سیاوش جان ، من تو رکورد بالای 3 میلیون منظورم بود ، تجربه خودم نشان می ده که شیوه نوشتن کوری شما صحیح تر و سریع تر است تا Inner join های تو در تو .
در مورد اینکه ستاره یا فیلد هم گفتم وقتی شما می خوای همه فیلد ها رو استفاده کنی ، فرقی نداره ولی وقتی تعدادی از فیلد ها برای خروجی لازمه حتما از فیلد های مورد نظر فقط استفاده کن و بقیه رو بی خیال بشید .
فقط یه نکته دیگه آخر بگم و اینکه همیشه لزوما کد کوری کافی نیست ارتباط بین جدول ها و شیوه بهینه شدن دیتا هم مهمه که خودتون استاتید همگی

siavashsay
پنج شنبه 28 دی 1391, 10:31 صبح
من جوین رو روی 4 تا جدول هم پیاده کردم اما فقط فیلدهای ضروری رو برگردوندم (* نذار حداقل 4 تا فیلد اضافه داری اینجا که روی 500 تا رکورد میشه چقد ؟)
سیاوش خان فکر کنم به مباحث بهینه سازی دیتابیس خیلی علاقه داری و از سوالات کاملا معلومه ، پس بهتره یه خوره تنبلی رو بذاری کنار:لبخند:
البته ببخشید کاملا دوستانه دارم میگم
شما تاج سری خان داداش ! :) همین که راهنمایی میکنی خودش کلی ارزش داره ! حالا میخوام راهنمایی Melow باشه میخواد با توپ و تشر :قهقهه:
در ضمن آره رضا جان ! با اینکه من Domain - Host خودم رو از HOSTPAPA که دیگه مثل GODADDY هست از آمریکا گفتم برام گرفتن - با اینکه همه چیزش unlimit هست ! اما بازم روی ترافیک و سرعت سایتم خیلی حساسم !

فقط یه نکته دیگه آخر بگم و اینکه همیشه لزوما کد کوری کافی نیست ارتباط بین جدول ها و شیوه بهینه شدن دیتا هم مهمه که خودتون استاتید همگی
ممونم ! راهنمایی کاملی بود دوستان !