View Full Version : سوال: بهترین کوئری برای شمارش بازدید مطالب
pirmard66
چهارشنبه 08 خرداد 1392, 12:57 عصر
با سلام
من چند وقت هست دارم برای شمارش بازدید پست ها از کوئری های زیر :
select p_id,count(ip) as visitop from visit8 group by p_id order by visitop desc limit 18
و
select sum(n_visit) from visit8 where p_id=123
استفاده میکنم.
امروز شرکت ارائه هاست بهم اخطار داد که این دو کوئری دارن بیش ار حد از منابع سرور استفاده میکنن.
و سایت دان کرد.
من جدول visit8 رو خالی کردم.
ولی دوستان میشه راه حل بدید که مشکل کد ها چیه؟
من به ازای بازدید ای پی شخص رو توی یک رکورد میزارم
یعنی هر بازدید یک رکورد میسازاه..
منتظرم
امیـرحسین
پنج شنبه 09 خرداد 1392, 19:37 عصر
احتمالا فیلد ip رو ایندکس نکردید. COUNT رو روی p_id بزنید.
همینطور n_visit که عددی هست رو ایندکس کنید.
sajadpm
شنبه 18 خرداد 1392, 00:17 صبح
با سلام و خسته نباشید
میشه کمی در ایندکس کردن فیلد های یک تیبل توضیح بدین که چه کاری انجام میده یا برای چه چیزی مفید هست ؟
امیـرحسین
چهارشنبه 22 خرداد 1392, 13:15 عصر
با سلام و خسته نباشید
میشه کمی در ایندکس کردن فیلد های یک تیبل توضیح بدین که چه کاری انجام میده یا برای چه چیزی مفید هست ؟
کاربرد ایندکس دقیقا مثل کاربرد فهرست کتابه. برای پیدا کردن یه عنوان تو یه کتاب، اگه فهرست وجود نداشته باشه باید کتاب رو ورق بزنیم تا پیداش کنیم ولی با فهرست مستقیم عنوان رو پیدا میکنیم.
وقتی فیلدی ایندکس نباشه و مقداری رو توش جستجو کنیم دیتابیس از اول جدول شروع میکنه همه سطرها رو چک میکنه تا نتیجه رو پیدا کنه.
توی جدولهایی که تعداد سطرهاشون خیلی زیاده و زیاد روشون کوئری اجرا میشه باید ایندکسها رو جوری ساخت که این کوئریها از ستونهای ایندکس شده برای پیدا کردن نتایج استفاده کنن...
همچنین تعداد ایندکسها روی دیتابیس حجم فیزیکی دیتابیس رو زیاد میکنه.
majidrezaei2007
سه شنبه 28 خرداد 1392, 14:42 عصر
دوست عزیز اگر فقط میخوای تعداد بازدید رو داشته باشی بهتره که به مباحث نرمال سازی دقت کنی و بیای یک فیلد بازدید توی خود جدول پست ها بزاری و برای هر بازدید یکی به اون اضافه کنی و بعد فقط select بگیری . اصولا دستور count دستور سنگینیه . ولی گاهی وقتا نمیشه ازش استفاده نکرد . مثلا اگر برای شما مهم باشه که چه کسی چه پستی رو بازدید کرده و ... باید جدول جداگانه در نظر بگیری و اونجا مجبوری از count استفاده کنی . اگر اینطوریه بهتره که شاخص رو جداولت بزاری تا سریع تر این کار انجام بشه
ولی به نظرم میاد که اینطوری هم سخت نمیخوای و فقط میخوای که تعداد بازدید رو نگه داری . به نظرم همون فیلد رو توی خود جدول پست ها بزار خیلی بهتره
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.