ورود

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : تشخیص دقیق هر ip



hosseinshirejoni
September 13th, 2016, 08:55
سلام و خسته نباشید من یه سایت دارم می خوام درونش کد php بنویسم که ip های اون روز یا هر هفته را تشخیص و بفهمم چند شخص (نفر) به سایت اومدند کد php نوشتنش کاری نداره میگیری میریزی تو دیتابیس ولی خب مشکل من اینجاس با گذشت زمان که تعداد کوئری ها زیاد میشه دیتابیس کند کار میکنه کسی میتونه کمک کنه؟

iHSG
September 13th, 2016, 09:01
سلام
به نظر من آی پی های تکراری رو دیگه یه ردیف جدا براشون تو دیتابیس نذار و فقط یه ستون کنار ستون آی پی بساز به نام تعداد دفعات بازدید و اگر همون آی پی دوباره بازدید کرد به جای INSERT در دیتابیس همون ردیف رو UPDATE کنید و تعداد بازدیدش رو یه دونه ببرید بالا.
بعدش چون فقط دیتابیس نوشتنی دارید و احتمالاً قرار نیست جایی در صفحات سایت این آی پی ها نمایش داده بشه بهتره از موتور دیتابیس InnoDB که سرعت نوشتن خیلی بهتری در موارد حجیم نسبت به موتور MyISAM داره استفاده کنید.

k-pax
September 13th, 2016, 09:03
برای راحتی کار میتونی از ابزار آماده استفاده کنی
گوگل آنالیتیک . وبگذر، پرشین استیت . این امکانان میدن !

بسته به نوع دیتابیستون و تعداد افراد ورودی شاید این سنگین بشه !

البته سنگین هم دارمی تا سنگین ! مثلا برای یک سایت یک میلیون رکورد سنگینه اما برای یه سایت دیگه 10 میلونش هم سنگین نیست ! بستیگی به استفاده از اطلاعات و نحوه بهینه سازی دیتابیستون داره.



سلام

به نظر من آی پی های تکراری رو دیگه یه ردیف جدا براشون تو دیتابیس نذار و فقط یه ستون کنار ستون آی پی بساز به نام تعداد دفعات بازدید و اگر همون آی پی دوباره بازدید کرد به جای INSERT در دیتابیس همون ردیف رو UPDATE کنید و تعداد بازدیدش رو یه دونه ببرید بالا.

بعدش چون فقط دیتابیس نوشتنی دارید و احتمالاً قرار نیست جایی در صفحات سایت این آی پی ها نمایش داده بشه بهتره از موتور دیتابیس InnoDB که سرعت نوشتن خیلی بهتری در موارد حجیم نسبت به موتور MyISAM داره استفاده کنید.

اینجوری تاریخهای ورود از دست میده . مثلا نمیدونه اون ایپی در چه تاریخهای وارد شده !


بهتره برای دیتابستون ستون کمتر بزارید تا حجمش کمتر بشه !
مثلا فقط ستون id , ip , date بزاری ! البته میتونی ستون برای تششخصی نحوه ورود و یا صفحه فرود رو هم اضافه کنی و همچنین نوع مرورگ و ... اما باعث افزایش حجم دیتابیست میشه

iHSG
September 13th, 2016, 09:36
اینجوری تاریخهای ورود از دست میده . مثلا نمیدونه اون ایپی در چه تاریخهای وارد شده !


خب اصولاً تمامی تاریخ های ورود یک آی پی که نباید مهم باشه باید هر بار که ردیف اون آی پی UPDATE میشه تاریخش هم به روز بشه.
یا مثلاً میشه یه ستون First_Date برای تاریخ اولین بازدید و یه Last_Date برای تاریخ آخرین بازدید تعریف کرد.

بعد فکر نکنم خود تعداد ستون ها بیشتر از Type بهینه ستون ها تاثیر گذار باشه مثلاً 50 تا ستون از نوع BIT مسلماً مشکل کمتری نسبت به 20 ستون از نوع DECIMAL پیش میارن ایشون باید نوع هر ستون هم دقیق بر اساس نیازشون تعیین کنن.
مثلاً برای تاریخ به نظر من بهتره از Timestamp استفاده کنن چون من مقایسه اش با DateTime رو که مطالعه میکردم ظاهراً DateTime هم کند تره و هم فضای بیشتری از دیتابیس میگیره.
یا برای ستون آی پی هم به نظرم یه varchar با تعداد کاراکتر 16 تایی کافیه و مشکلی نباید باشه.

hosseinshirejoni
September 13th, 2016, 09:46
وقعا دستتوت درد نکنه چه انجمن عالی هیچ انجمنی به سرعتی که شما پاسخ دادید پاسخ نمیده خیلی ممنون انشالله هر روز در کار هاتون موفق تر باشید
خیلی ممنون باز من یه سوال دارم هالا بر فرض محال گوگل با اون همه بازدیدش ماله من بود ایا بازم سایت سنگین نمیشه! من قدیما یه مطلبی خودنم تو یه فایل ذخیر میکرد اما اصلا نمی دونم چه طوری و چرا فقط اینو میدونم که میگفت سرعت خوندن یه فایل متنی راحت تر از پایگاه داده است ایا شما اطلاعاتی ندارید ایا این حرف درسته
بازهم ممنون

iHSG
September 13th, 2016, 10:09
وقعا دستتوت درد نکنه چه انجمن عالی هیچ انجمنی به سرعتی که شما پاسخ دادید پاسخ نمیده خیلی ممنون انشالله هر روز در کار هاتون موفق تر باشید
خیلی ممنون باز من یه سوال دارم هالا بر فرض محال گوگل با اون همه بازدیدش ماله من بود ایا بازم سایت سنگین نمیشه! من قدیما یه مطلبی خودنم تو یه فایل ذخیر میکرد اما اصلا نمی دونم چه طوری و چرا فقط اینو میدونم که میگفت سرعت خوندن یه فایل متنی راحت تر از پایگاه داده است ایا شما اطلاعاتی ندارید ایا این حرف درسته
بازهم ممنون

ببینید خب همون گوگل که مثال میزنید مثل من و شما روی یه هاست اشتراکی یا حتی یه سرور مجازی که این کار ها رو نمیکنه گوگل خودش دیتاسنتر شخصی داره یعنی حتی یکی دو تا سرور اختصاصی هم نیست شاید 100 ها سرور اختصاصی ابر کامپیوتر فقط مختص گوگل باشه به همین دلیله که هیچ وقت کم نمیاره چون پردازش بخش های مختلف گوگل بین این همه ابر رایانه تقسیم میشه و مسلماً دیگه نباید هم کندی سرعت داشته باشن :)

ذخیره در فایل هم روش های مختلفی داره مثل xml و ini و json و... ولی خب همین روش ها هم سرعت خوندن و نوشتن متفاوتی دارن اما کلاً در برنامه تحت وب ذخیره در دیتابیس خیلی اصولی تر و بهتر به نظر میرسه.حالا شاید سرعت نوشتن تو فایل یکم هم بیشتر باشه ولی استفاده بهینه از دیتابیس مطمئن باشید در طولانی مدت بهتره.

k-pax
September 13th, 2016, 10:44
وقعا دستتوت درد نکنه چه انجمن عالی هیچ انجمنی به سرعتی که شما پاسخ دادید پاسخ نمیده خیلی ممنون انشالله هر روز در کار هاتون موفق تر باشید
خیلی ممنون باز من یه سوال دارم هالا بر فرض محال گوگل با اون همه بازدیدش ماله من بود ایا بازم سایت سنگین نمیشه! من قدیما یه مطلبی خودنم تو یه فایل ذخیر میکرد اما اصلا نمی دونم چه طوری و چرا فقط اینو میدونم که میگفت سرعت خوندن یه فایل متنی راحت تر از پایگاه داده است ایا شما اطلاعاتی ندارید ایا این حرف درسته
بازهم ممنون

نوشت داخل فایل تا زمانی که قایل سنگین نشده باشه خوبه اما وقتی یکم حجم رفت بالا اون موقعه اذیت میشید

در مورد گوگل . همنوجور که دوسمون توضیح دادن سرروهای پرقدرتی داره و از همه مهمتر دیتابیسش هست که از نوع nosql هست و به BigTable معروف هست و مخصوص خودشه . که سرعتی اینچنینی داره .
بهترنی راه استفاده از همون روشی هست که دوسمتون گفتند .

گوگل تمامی اطلاعات رو ذخیره میکنه . و الان تقریبا تمامی اطلاعات مردم دنیا را داره . از پسورد گرفته تا قرنیه چشمو اثر و انگشت و ... و اصلا هم کند نمیشه !

hosseinshirejoni
September 14th, 2016, 09:33
خیلی ممنون

ms313
September 14th, 2016, 10:57
بصورت روزانه ثبت کنید هر آی پی رو با تایخ که بتونید کوپری های متفاوت رو بزنید هفته ، ماه ، سال ، رو داشته باشید .
چون یه دونه جدول هست و زیادروش کوپری سختی انجام نمیشه مشکلی براتون از نظر کندی پیش نمیاره .
می تونید بصورت خروجی های جی سان در یک فایل هم نگهداری کنید یا از nosql ها استفاده کنید.
موفق باشید.