PDA

View Full Version : کار با جدولی با 20 میلیون رکورد



Hybrid
پنج شنبه 05 فروردین 1395, 03:28 صبح
سلام دوستان ، در بانک اطلاعاتی که دارم یک جدول وجود داره که شامل 3 ستون هستش ( مهم نیست اسمشون شما فرض کنید ID ، Name ، Address ) . این جدول می تونه 20 میلیون رکورد رو داخلش ذخیره کنه . من یک برنامه با سی شارپ طراحی کردم که از این Query می گیره ( SELECT name from tableNames where name like 's%' ) ولی زمان طولانی طول میکشه که داده ها نمایش داده بشن . آیا شما راه حلی دارید که در مدت زمان کمتری داده ها نمایش داده بشن و سرعت اجرای کوئری بالا بره ؟ بانک اطلاعاتی هم SQL Server هست .

Mahmoud Zaad
پنج شنبه 05 فروردین 1395, 04:54 صبح
سلام
حدس میزنم اینکار برای AutoComplete باشه بنابراین
یک راه اینه که از کلمه Top استفاده کنید و همیشه مثلاً 10 رکورد اول رو نشون بدید.
یک راه اینه که از حرف دوم به بعد جستجو انجام بشه یعنی کاربر حرف اول رو بنویسه ولی جستجو انجام نشه از حرف دوم به بعد جستجو انجام بشه.
از ترکیب این دوتا هم می شه استفاده کرد.

joker
پنج شنبه 05 فروردین 1395, 07:07 صبح
سلام دوستان ، در بانک اطلاعاتی که دارم یک جدول وجود داره که شامل 3 ستون هستش ( مهم نیست اسمشون شما فرض کنید ID ، Name ، Address ) . این جدول می تونه 20 میلیون رکورد رو داخلش ذخیره کنه . من یک برنامه با سی شارپ طراحی کردم که از این Query می گیره ( SELECT name from tableNames where name like 's%' ) ولی زمان طولانی طول میکشه که داده ها نمایش داده بشن . آیا شما راه حلی دارید که در مدت زمان کمتری داده ها نمایش داده بشن و سرعت اجرای کوئری بالا بره ؟ بانک اطلاعاتی هم SQL Server هست .

از صفحه بندی باید استفاده کنید
https://www.google.com/search?q=mssql+pagination

توجه کنید که توی mssql دستور LIMIT را مثل mysql ندارید و باید از روش دیگه ای که برای این مورد هست استفاده کند ( لینک بالا)

vahidalvandi
جمعه 13 فروردین 1395, 14:53 عصر
توی mysql به راحتی میشه تعداد رکوردی که انتخاب شده را محدود کرد یا همون paging هم گفته میشه

SELECT * FROM tbl LIMIT 5; # Retrieve first 5 rows