الإكمال التلقائي منسدلة - الكثير من البيانات، انتهاء المهلة

StackOverflow https://stackoverflow.com/questions/176782

  •  05-07-2019
  •  | 
  •  

سؤال

وهكذا، لدي المنسدلة الإكمال التلقائي مع قائمة من البلدات. في البداية لقد كان 20 أو نحو ذلك كان لدينا في قاعدة البيانات ... ولكن في الآونة الأخيرة، لاحظنا أن بعض البيانات المتوفرة لدينا تقع في مقاطعات أخرى ... حتى الدول الأخرى. لذلك، فإن الجواب على ذلك شراء واحدة من قواعد البيانات هذه مع جميع المدن في الولايات المتحدة (نعم، وأنا أعلم، الترميز الجغرافي هو الجواب ولكن نظرا لضيق الوقت ونحن نفعل ذلك حتى يكون لدينا الوقت لذلك الميزة).

وهكذا، عندما كان لدينا 20-25 المدن الإكمال التلقائي عملت stellarly ... الآن أن هناك 80،000 انها ليست سهلة كما.

وأنا اكتب وأنا أفكر أن أفضل طريقة للقيام بذلك هو الافتراضي لهذه الدولة، ثم سيكون هناك أقل من ذلك بكثير. وأود أن أضيف محدد الدولة إلى الصفحة التي افتراضات إلى NJ ثم يمكنك اختيار دولة أخرى إذا لزم الأمر، وهذا سوف تضييق القائمة ل<1000. رغم ذلك، ربما أكون قد نفس القضية؟ لا أحد يعرف من عمل حول لالإكمال التلقائي مع الكثير من البيانات؟

ويجب أن الرد على تيه codez من بلادي خدمة ويب؟

هل كانت مفيدة؟

المحلول

هل تحاول الإكمال التلقائي بعد كتابة حرف 1 فقط؟ ربما تنتظر حتى 2 أو أكثر ...؟

وبالإضافة إلى ذلك، يمكنك فقط العودة لأعلى 10 صفوف، أو شيء من هذا؟

نصائح أخرى

ويبدو وكأنه التطبيق الخاص بك الخانق على مقدار البيانات التي يتم إرجاعها ثم حاول أن تكون المقدمة من قبل المتصفح.

وأفترض أن قاعدة البيانات لديها مؤشرات مناسبة، وليس لديك مشكلة أداء هناك.

وأود أن تحد من نتائج خدمتكم بما لا يزيد عن القول 100 النتائج. المستخدمين لن ننظر في أي أكثر من ذلك أي كيف.

وأود أيضا أن يجري فقط استرجاع البيانات من الخدمة يتم إدخال مرة واحدة أو 2 أو 3 أحرف التي سوف تزيد من الحد من نطاق الاستعلام.

وحظا سعيدا!

سؤال غبي وربما، ولكن ... هل فحص للتأكد من حصولك على فهرس على العمود اسم المدينة؟ لا أعتقد 80K أسماء يجب أن مشددا على قاعدة البيانات الخاصة بك ...

وأعتقد أنك على الطريق الصحيح. استخدام مجموعة من المدخلات المتتالية، الدولة -> مقاطعة -> بلدة حيث ينجح كل واحد يمسك السكان المحتملين على أساس قيمة واحدة السابقة. أن كل المدخلات التحقق من صحة ضد سكانها المحتملين لتجنب المدخلات زائفة. أود أن أقترح التخزين المؤقت نتائج المتوسطة والاستعلام ضدهم لالإكمال التلقائي بدلا من الذهاب كل في طريق العودة إلى قاعدة البيانات في كل مرة.

إذا كان لديك السيطرة على SQL الأساسية، قد ترغب في محاولة العديد من الاستفسارات "UNION" بدلا من الاستعلام واحد مع عدة "OR مثل" الخطوط في تقريرها حيث شرط.

هذه المقالة على تحسين SQL.

وكنت للتو لحد من الاستعلام SQL مع شرط فوق. وأود أيضا باستخدام "أقل من" بدلا من مثل:

select top 10 name from cities where @partialname < name order by name;

وأن "سي" سوف اعطيكم "بستان الارز" و "سيدار الروابي" ولكن أيضا "تشاتام" و "شيري هيل" لذلك كنت دائما الحصول على عشر سنوات.

في LINQ:

var q = (from c in db.Cities
        where partialname < c.Name
        orderby c.Name
        select c.Name).Take(10);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top