تالار گفتمان nCIS.ir

نسخه‌ی کامل: سوالاتی در مورد دیتابیس
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام و خسته نباشید به دوستان عزیز
دارم مباحث دیتابیس رو به استاندارد دنبال میکنم.
شاید خیلی از سوالام از نظر شما چرت و بی معنی هستش ولی باور کنین تو نت جوابشو پیدا نکردم و اومدم و اینجا میپرسم.
در این زمینه به سوالانی بر میخورم که اینجا مطرح میکنم.
به این کد اولی ی نگا بدازید.
$sql="select * from  `user`";
به این کد دوم هم ی نگا بندازید.
$sql="select name,family,code from  `user`";

همون طور که میدونیم در روش اول کل جدول رو برمیگردونه و در روش دوم فیلد هایی رو که میخوایم.
من همیشه از روش اول تو جستجوهام استفاده میکردم.
حالا خواستم ببینم روش اول و دوم از لحاظ فشار ب سرور و استفاده از رم و cpu تاثیر ی داره؟
مثلا من جدولی دارم که 30 تا فیلد داره من تو ی جستجو فقط سه تاشو لازم دارم و بقیه به درد نمیخوره.
حالا
خواستم ببینم در این شرایط از روش دوم استفاده کنم یا روش اول هم نسبت به دومی بدنیست.
مرسی
مسلماً روشی که تعداد مورد نظر فیلداتونو می خواید select کنید بازدهی و کارایی بهتری داره اما اصولاً در مباحث دیتابیس میگن گزینش و شرط هاش باید اول ایجاد بشه سپس پرتو (project) و فیلد های مورد نظرتون به همین ترتیب بعد از اون .

به نکته ای دیگه ایم که داره اینه که در پیوند جداول (join) همیشه اول جدول که تعداد فیلد ها و محتوای بیشتری داره باید در سمت چپ قرار بگیره یا به عبارت باید اول نام اون جدول ذکر بشه.
حتما از روش دوم استفاده کنید چون در روش اول فیلدهایی که نیاز ندارید هم باید توی RAM موقتا ذخیره بشه.
به این متن ی نگا بندازید.

کوئریهاتون رو بهینه بنویسید میتونید از
explain در ابتدای هر کوئری بفهمید که mysql چطوری داره برخورد میکنه و از کدوم ایندکس ها استفاده میکنه و به این طریق کوئریتون رو بهینه بنویسید

چطوری میتونم از explain در ابتدای هر کوئری استفاده کنم.
منظور نویسنده رو از این کار متوجه نشدم.
خیلی ممنون
EXPLAIN SELECT * FROM `user`;

به این صورت می تونید از explain استفاده کنید .

این لینک و مطالعه کنید https://dev.mysql.com/doc/refman/5.0/en/...plain.html

البته دستور دیگری به نام explain extended هم داریم که تخمین بهتری از کارایی و شرایط بهینه تر را فراهم می سازد.
سلام و خسته نباشید به دوستان عزیز
به این لینک ی سری بزنید.
http://www.w3schools.com/sql/sql_injection.asp
تو این سایت گفته که برای جلوگیری از حملات sql injection از pdo استفاده کنیم.
حالا
تو اینجا از bindParam استفاده کرده.حالا خواستم ببینم آیا از prepare هم استفاده کردنی امنیت برقرار میشه یا حتما باید از prepare استفاده کنیم.
مرسی
خود PDO باعث امنیت نمیشه. چیزی که اون رو امن میکنه همین Prepared Statements و Parameterized Query هست.