سوال و جواب تخصصی هیتوس
افزایش سرعت کوئری ها mysql توسط php
سلام من یک دیتا بیس mysql دارم که حدودا 58 هزار رکورد داره که بوسیله کوئری زیر داده هامو ازش فراخوانی می کنم
SELECT * , SPLIT_STRING(`fa`,'،',1) as `word` FROM `ws_fatoen` WHERE SPLIT_STRING(`fa`,'،',1)='myword'
خروجی کد به این صورت خواهد بود
Showing rows 0 - 0 (1 total, Query took 4.1161 seconds.)
SELECT * , SPLIT_STRING(`fa`,'،',1) as `word` FROM `ws_fatoen` WHERE SPLIT_STRING(`fa`,'،',1)='سفید'
86 سفید white سفید
حساب کنید حالا من بصورت یک حلقه کلماتی رو با این کوئری در میارم که زمان بسیاری می بره
می خواستم :
1 - ایا راهی سریع تر برای دریافت جواب هست مثلا بجای جست و جوی یک کلمه یک جمله رو بدم و جواب بیاد
2- اگر بخوام از این کوئری دوبار استفاده کنم ولی فقط شرطش تغییر کنه آیا راه سبک تر وآسانی از فرخوانی هر دفعه هست یا نه
3- php سریع تره یا mysql مثلا من کل دیتا بیس رو تبدیل به یک فایل json کنم بعد با حلقه php دنبال کلمه بگردم سریع تر از mysql عمل نمیکنه ؟
یه اشاره ای هم بکنم این یک جدول کلمه با معنی است که تشکیل شده از id و fa و en که به ترتیب فارسی و انگلیسی است که فارسی آن با مجموعه معنی که با کاما جدا شده اند هست با کوئری بالا ما تمامیه فارسی ها را جدا کرده ودر مقابل کلمه انگلیسی آن قرار می دهیم که این امر تقریبا رکورد ها را چندین برابر میکنه بعدشم جست و جو می کنیم که کدام کلمه فارسی معنای انگلیسی آن چیست
در کل اگر جواب منو بدید ممنون میشم
باتشکر
سلام برای اینکه بهتر بشه،به ستون ws_fatoen ویژگی index دیتابیس اضاضه کن
اoen
سلام البته معمول ترین کار همین قرار دادن index بر روی ستونی که جست و جو روی آن اتفاق می افتد است اما برای بررسی دقیق و انجام بهترین کار باید هم کدی که فرمودید رو ببینیم هم نمونه ای از دیتا موجود در جدول
-----------------------------------------------------------------------------------------------------
تعویض پنجره قدیمی بدون تخریب
پنجره کشويی تک ريل
چمن مصنوعی دست دوم