ورود

View Full Version : سوال: در مورد عملکرد بانک MySQL



Lagon666
دوشنبه 25 شهریور 1387, 01:44 صبح
سلام
یه سول در مورد عملکرد بانک MySQL دارم.

میخوام بدونم وقتی ما دستور زیر را تایپ می کنیم:


SELECT * FROM table WHERE id=6


اگر داده های ما از 1 تا 10 به ترتیب در بانک اضافه شده باشن، آیا با این دستور MySQL از داده ی 1 شروع به جستجوی تک به تک از 1 تا 6 میکنه و وقتی id=6 شد، به ما پاسخ میده یا مستقیما id=6 رو پیدا میکنه و به ما میده.

دلیل این سوالم آشنایی بیشتر با سرعت بانک هست. هر چند زمان زیادی برای این کار طول نمی کشه، اما دونستن صدم ثانیه ی این جستجو برای من مهمه.

tabib_m
دوشنبه 25 شهریور 1387, 03:51 صبح
:)
طبیعتا جستجو، یعنی نگاه کردن به گزینه ها

بحثش خیلی پیچیده تر از این حرفاس... مثلا، فیلدی که شما مثال زدی، معمولا index شده هست... طریقه ی پیدا کردن رکورد مذکور، از توی فهرست صورت میگیره...

توجه داشته باش که mysql آدم نیست که بخوات آدم وار بگرده :)

موفق باشید.

Lagon666
دوشنبه 25 شهریور 1387, 05:02 صبح
سپاس از پاسختون

من هم با شما موافقم. روش جستجو به احتمال زیاد باید تک به تک باشه.
اگر بخواهیم خیلی روی این سوال فکر کنیم، ممکنه به این نتیجه برسیم که این سوال میتونه نادرست هم باشه.
در ضمن، درسته که MySQL انسان نیست، اما انسان اون رو طراحی کرده، پس فکر نمی کنم چیزی پیچیده تر از انسان باشه.

tabib_m
سه شنبه 26 شهریور 1387, 02:12 صبح
درسته که MySQL انسان نیست، اما انسان اون رو طراحی کرده، پس فکر نمی کنم چیزی پیچیده تر از انسان باشه.
منظور من هم دقیقا برعکس این بود...
ذهن انسان خیلی پیچیده تر از این حرفاس... قدرت هایی در جستجو داره که به هیچ وجه نمیشه با قدرت جستجو توسط کامپیوتر مقایسه کرد... در عوض اشتباهاتی که انجام میده کمی بیشتر از کامپیوتر هست.
کامپیوتر، قراره کار دقیق تحویل بده. بنابراین باید شیوه ی جستجوش ساده تر و دقیق تر و متفاوت باشه!
طبیعتا اگر قرار باشه در یک فیلد معمولی جستجو کرد، باید تک تک رکورد ها بررسی بشن!

موفق باشید

RED-C0DE
سه شنبه 26 شهریور 1387, 03:56 صبح
دقیقا همین نکته ای که اشاره شد یعنی INDEX ...
مثل دسترسی به یک صفحه خاص کتاب از روی فهرست (ایندکس) اون ...

یک روش جستجو در حجم زیاد اطلاعاتی (مثلا در بانکهای اطلاعاتی که بر اساس یک یا چند فیلد خاص نشانه گذاری یا ایندکس شده اند) که بر اساس یک یا چند فیلد خاص مرتب شده اند هستش...

Lagon666
سه شنبه 26 شهریور 1387, 09:17 صبح
فکر کنم داریم به جاهای خوبی میرسیم.
RED-C0DE (http://barnamenevis.org/forum/member.php?u=17039) جان، میتونی روش هایی برای نشانه گذاری یا ایندکس شدن که گفتی به ما ارائه بدی.

narsic
چهارشنبه 27 شهریور 1387, 00:16 صبح
با سلام
میخواستم یکم این بحث رو تکمیل تر کنم براتون .
نحوه جستجو در زبا های ساخت یافته به این شکل هستش که پیش از شروع جستجو اطلاعات مرتب میشن و بعد جستجو شروع میشه حشتجو کل فیلدها رو تقسیم بر 2 میکنه و به دو دسته تقسیم میکنه دسنه ی اول کمترها دسته ی دوم بیشترها سپس اگر که عدد مورد جستجو کمتر از آخرین عدد دسته اول بود جستجو در اون دسته شروع میشه و در غیر اینصورت دسته ی دوم انتخاب میشه برای جستجو سپس مجدد دسته تقسیم میشه و باز هم عمل مقایسه این کار تا جایی صورت میگیره که نتیجه مورد نظر بدست بیاد حتی حروف هم بر اساس کدهای اسکیشون مورد جستجو قرار میگیرن و رشته هم به صورت ابتدا اولین کاراکتر سپس دومین کاراکتر و .... انجام میشه .
امیدوارم تونسته باشم کمک کنم .
موفق باشید