رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
سوالاتی در مورد دیتابیس
#1
سلام و خسته نباشید به دوستان عزیز
دارم مباحث دیتابیس رو به استاندارد دنبال میکنم.
شاید خیلی از سوالام از نظر شما چرت و بی معنی هستش ولی باور کنین تو نت جوابشو پیدا نکردم و اومدم و اینجا میپرسم.
در این زمینه به سوالانی بر میخورم که اینجا مطرح میکنم.
به این کد اولی ی نگا بدازید.
$sql="select * from  `user`";
به این کد دوم هم ی نگا بندازید.
$sql="select name,family,code from  `user`";

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

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

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

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

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

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

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




کاربران در حال بازدید این موضوع: 2 مهمان