النتائج 1 إلى 6 من 6

الموضوع: ما هي أفضل طريقة تحفيظ معلومات في جدول البيانات في الحالة التالية

  1. #1
    عضو نشيط
    تاريخ التسجيل
    May 2008
    المشاركات
    235

    ما هي أفضل طريقة تحفيظ معلومات في جدول البيانات في الحالة التالية



    لدي جدول بيانات مؤلف من حوالي مليون كلمة.
    الجدول أستعمله عندما يقوم الزائر بالبحث عن كلمة ما، فتظهر الإحتمالات تحت الكلمة تماما مثل google autosuggest يعني يكتب الزائر كلمة نانــ تطلع بالإحتمالات نانسي عجرم.

    المشكلة أن السكريبت بطيء قليلأ، وألاحظ أن سرعة غوغل في وضع الإحتمالات سريع جداً.

    سؤالي، ما هي أفضل طريقة تحفيظ بيانات في المايسكل لهكذا جدول، يعني لو حفظت كل كلمة في عامود مخصص لأول حرف بالكلمة أفضل؟ أم أضع جميع الكلمات في عامود واحد.

    حالياً أستعمل هذا الشكل للإستعلام
    mysql_query(" SELECT `word` FROM `suggest` WHERE `word` LIKE '$word%' ORDER BY `repeat` DESC LIMIT 0 , 10 ", $con);

    الجدول :
    CREATE TABLE `suggest` (
    `id` int(7) NOT NULL auto_increment,
    `word` varchar(60) collate utf8_unicode_ci NOT NULL,
    `repeat` smallint(5) NOT NULL default '1',
    PRIMARY KEY (`id`),
    UNIQUE KEY `word` (`word`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=104093 ;





    __________________
    www.2favorite.com إحفظ مواقعك المفضلة بأمان أونلاين

    www.lawwen.com/ads إعلانات لوّن


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    232


    اذ لديك كلمات كثيرة تبدا بحرف A خصص لها جدولا لوحدها
    واذا كانت بعض الحروف قليلة مثل x و z يمكنك ادخالها في جدول واحد





    __________________
    www.morobile.com

  3. #3
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    731


    ما سبق تعاملت مع حالة مشابهة

    هل فكرت مثلاً في توزيع الحروف الأربع الأولى في اعمدة رقمية ؟

    يعني كل حرف يقابله رقم

    وفي الجدول يكون هناك اربع اعمدة tiny integer يوضع بها الرقم المقابل للحرف. وفي العمود الخامس تكون الكلمة

    إذا كتبت "سوالف" مثلاً يتم الإستعلام في الحقول الرقمية الأربع : بالأرقام المقابلة لكل حرف.
    ويكون السجل بهذا الشكل :
    12 | 27 | 1 | 23 | 20 | "سوالف"

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





    التعديل الأخير تم بواسطة Ameen Al-Harbi ; 11-11-2009 الساعة 07:52 PM
    __________________
    Saudi Wanderer
    My Blog : SWanderer

  4. #4
    عضو نشيط
    تاريخ التسجيل
    May 2008
    المشاركات
    235


    اذ لديك كلمات كثيرة تبدا بحرف A خصص لها جدولا لوحدها
    واذا كانت بعض الحروف قليلة مثل x و z يمكنك ادخالها في جدول واحد
    هل تقليل هذه الكمية من المعلومات تعمل فرق بإستخراج قيمة البحث؟؟


    ما سبق تعاملت مع حالة مشابهة

    هل فكرت مثلاً في توزيع الحروف الأربع الأولى في اعمدة رقمية ؟

    يعني كل حرف يقابله رقم

    وفي الجدول يكون هناك اربع اعمدة tiny integer يوضع بها الرقم المقابل للحرف. وفي العمود الخامس تكون الكلمة

    إذا كتبت "سوالف" مثلاً يتم الإستعلام في الحقول الرقمية الأربع : بالأرقام المقابلة لكل حرف.
    ويكون السجل بهذا الشكل :
    12 | 27 | 1 | 23 | 20 | "سوالف"

    حيث الأرقام تمثل ترتيب الحرف ضمن حروف الهجاء. وبإمكانك تستخدم أي طريقة أخرى للإستعاضة عن الحرف برقم ليكون الإستعلام أسرع.
    شكراً لك ولكن لم أفهم قصدك جيداً ، هل الإستعلام عن الأرقام أسرع من الإستعلام عن كلمة، وضع 4 عواميد أظنه يأخذ وقت مثلاً
    12 | 27 | 1 | 23 | 20 | "سوالف" عندها أكتب where col1=20 and col2=23 and col3=1--





    __________________
    www.2favorite.com إحفظ مواقعك المفضلة بأمان أونلاين

    www.lawwen.com/ads إعلانات لوّن

  5. #5
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    779


    موضوع جميل جدا صراحه

    حاليا ما عندي تعليق الا ان تضع اندكس لعمود الكلمة
    كود:
     
    ALTER TABLE `suggest` ADD INDEX(`word`)






    __________________
    أهلا و سهلا بكم في :-
    موقع دار الأوائل
    تفضل معنا خدمات الاستضافة
    موقع العبقري لخدمات الاستضافة

  6. #6
    عضو نشيط
    تاريخ التسجيل
    May 2008
    المشاركات
    235


    موضوع جميل جدا صراحه

    حاليا ما عندي تعليق الا ان تضع اندكس لعمود الكلمة
    كود:
     
    ALTER TABLE `suggest` ADD INDEX(`word`)
    العامود ورد له قيمة
    uniqe
    يونيك هي بحد ذاتها Index
    ولكن index لا يمكن أن تتواجد فيه قيمة أكثر من مرة. لذا أظن ليس لها أهمية أودور في هذه الحالة





    __________________
    www.2favorite.com إحفظ مواقعك المفضلة بأمان أونلاين

    www.lawwen.com/ads إعلانات لوّن





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض