PDA

View Full Version : سوال: جستجو در اطلاعات حجيم



alibayati
جمعه 27 بهمن 1396, 11:46 صبح
با سلام
ديتابيسي دارم كه شامل متن هزارها كتاب است بطوري كه حجم ديتابيس با ايندكس آن بيش از 5 گيگابايت هست.
حالا ميخواهم عبارتي را در متن همه كتابها جستجو كنم.
فعلا دارم از اين كويري استفاده ميكنم:

set @search = '%محمد رسول الله%';
select `book_id`, `title` from `search` where `title` like @search
union
select `book_id`, `title` from `search` where `info` like @search
union
select `book_id`, `title` from `search` where `toc` like @search
union
select `book_id`, `title` from `search` where `text` like @search
union
select `book_id`, `title` from `search` where `footnote` like @search

ولي اين كويري در حدود 77 ثانيه زمان ميبرد.
علت استفاده از union براي نمايش بر اساس اولويت است.
آيا روش بهتري براي جستجو در ديتابيسهاي حجيم وجود دارد؟
با تشكر.

golbafan
دوشنبه 20 فروردین 1397, 11:28 صبح
مشخصات سرور چی هست؟
تعداد رکوردها چقدر؟
آیا دیتابیس رو پارتیشن بندی کردید؟
آیا تنظیمات mysql رو بروی حالت server گزاشتید یا developer هست؟
نوع ایندکس متون معمولی هست یا full-text انجام دادید؟

با این حال کوئری رو جدا جدا اجرا کنید و زمان ها رو جمع بزنید. تا بدونید کدوم خط موقع اجرا سرعتش پایینه. بعد بهینه اش کنید.