هدف ذخیره اطلاعات تعداد زیادی از کاربران در دیتابیس است به صورتی که با بالاترین پرفورمانس بتوان اطلاعات آنها را بازیابی کرد.
در ابتدا دو جدول ایجاد شد. جدول شماره یک که یک جدول کمکی و مختصر است و فقط شامل اطلاعات اساسی کاربران است :
زمانیکه کاربران قصد ورود به سایت را دارند اطلاعات لاگین آنها در این جدول جستجو میشود و در صورت یافت شدن و صحت آنها، اطلاعات کامل آنها از جدول دوم استخراج میشود.
جدول دوم شامل تمامی اطلاعات یک کاربر است :
مقدار شناسه id برای یک کاربر در هر دو جدول یکسان هستند. طوریکه با جستجو در جدول اول میتوان شناسه کاربر را پیدا کرده و سپس به طور مستقیم اطلاعات کاربر را از جدول دوم با همان شناسه استخراج نمود.
به تعداد یک میلیون کاربر با اطلاعات تکمیل شده و تصادفی به این دو جدول افزوده شد. و سپس سرعت جستجوی اطلاعات مورد ارزیابی قرار گرفت.
حجم جدول اول (users_search) تقریبا برابر با 100 مگابایت شده است. و جدول اصلی (users_info) حدود 400 مگابایت حجم دارد.
از طریق phpMyAdmin یک جستجو در جدول users_search انجام شد. به این شکل که یک ایمیل به خصوص باید یافت میشد. این جستجو در 0.7 ثانیه به نتیجه رسید. سپس در جدول users_info جستجو روی شناسه کاربر انجام شد. که اینبار در 0.003 ثانیه جستجو به نتیجه رسید.
با اینکه جدول users_info تقریبا 4 برابر حجم بالاتری دارد ولی سرعت جستجو به دلیل primary بودن شناسه کاربر به سرعت به نتیجه رسید.
(قابل توجه اینکه نوع دیسک از نوع SSD است.)
در آزمایش بعدی در جدول users_search ایمیل را نیز به ایندکس تبدیل کردیم تا سرعت جستجو افزایش پیدا کند. این کار باعث افزایش حجم این جدول از 100 مگابایت به 150 مگابایت شد. و در سرعت جستجو تغییر محسوسی ایجاد نکرد! باز هم همان 0.7 ثانیه شده بود.
این بار طراحی جداول و سیستم عملکرد را تغییر دادیم. در سیستم جدید ابتدا ایمیل (یا موبایل یا کدملی) کاربر باید جستجو میشد و سپس از رکورد پیدا شده، شناسه کاربر را دریافت کرده و سپس از جدول users_info اطلاعات کاربر را استخراج میکردیم.
جدول جستجوی ایمیل :
در این جدول ستون ایمیل برابر با کلید اصلی و پرایمری این جدول است و user_id نیز یک فیلد اطلاعاتی که همان شناسه کاربر می باشد. (جداول مشابهی نیز برای موبایل و کدملی کاربر ایجاد شد)
باز هم به روش قبل به تعداد یک میلیون کاربر به این جداول افزوه شد. (حجم این جدول تقریبا 50 مگابایت شده است)
اینبار با جستجوی یک ایمیل در جدول فوق در 0.001 ثانیه نتیجه مورد نظر پیدا شد! یعنی افزایش 700 برابری سرعت!