PDA

View Full Version : بانک اطلاعاتی برای بزرگترین کتابخانه آنلاین



ealireza
سه شنبه 17 بهمن 1385, 01:39 صبح
سلام

یک کتابخانه آنلاین داریم که داده ها بصورت زیر هستند


+book 1
-page 1
-page 2
.....9999

+book 2
-page 1
-page 2
.....9999

+book 3
-page 1
-page 2
.....9999


+book 4
-page 1
-page 2

هر کتاب حد اقل 1800 صفحه داره و حجم متوسط هر صفحه هم 25 کیلو بایت میشه
و جدول بصورت زیر هست


Id : Primary Key | INT | AUTO INCREASE
BID : Int | INDEX (FILL 60%)
Content : Ntext

وقتی که رکورد های این جدول بیشتر از 68000 تا میشه خیلی خیلی کند کار میکنه
هم از لحاظ اضافه کردن هم انتخاب

به نظر شما بهتر نیست برای هر کتاب یک Table جدید اضافه شه ؟
یعنی محتویات هر کتاب تو Table مخصوص خود اون کتاب بره ؟
بهتر نیس از MY SQL استفاده شه چون برای هر Table یک فایل جدا میسازه
برای جستجو در کل کتابها یا یک کتاب خاص چی ؟


لطفا راهنمایی کنید چیکار کنم
مرسی

حمیدرضاصادقیان
سه شنبه 17 بهمن 1385, 07:29 صبح
دوست عزیز شاید بهتر باشه هدر کتابها رو در یک جدول نگه داری کنی و مطالب داخل اونو در یک جدول دیگه.

ealireza
سه شنبه 17 بهمن 1385, 12:35 عصر
دوست عزیز شاید بهتر باشه هدر کتابها رو در یک جدول نگه داری کنی و مطالب داخل اونو در یک جدول دیگه.
سلام
دقیقا العان همین کار را کردم
BID همون BOOK ID هست که با Table کتابها ریلیشن داره

whitehat
سه شنبه 17 بهمن 1385, 13:54 عصر
برای جستجو در کل کتابها یا یک کتاب خاص چی ؟
اگر منظورتان محتوای داخل کتاب ها است می توانید از Fuul Text Search در SQL استفاده کنید
برای بالا بردن سرعت می توانید بر روی فیلد مورد نظر اندیس گذاری کنید

حمیدرضاصادقیان
سه شنبه 17 بهمن 1385, 15:10 عصر
پس بهتره یک نظری روی query هایی که میگیری بکنی.اگر تمایل داشتی خود کدت رو اینجا پست کن و کارش رو بگو شاید بشه راه بهتری پیشنهاد داد

ealireza
سه شنبه 17 بهمن 1385, 15:11 عصر
دقیقا
ایندکس هم ساختم .


INDEX (FILL 60%)

اما وقتی برای هر کتاب یک Table جدا میسازم سرعت بصورت عجیبی زیاد میشه
با اینکس : 654
با تیبل : 65
برای


SELECT top 30 from ... where bid=@bid...


البته بعد از اولین اجرا کش میشن تو SQL که رم رو میترکونه...