ویرایش توسط hoka : March 24th, 2017 در ساعت 18:04
اشتباه شما و یه سری دیگه از دوستان اینه که فک کردید خط فرمان php هم مثل ویندوزه . درسته اگه یک فایل با سیصد میلیون لاین رو داخل ویندوز باز کنید نه تنها نرم افزار میزبان هنگ میکنه بلکه مجبور میشید سیستم رو ری استارت کنید . ولی پی اچ پی مگه ویندوزه که بخواد فایلی رو بخونه و هنگ کنه ؟
بله دوست عزیز یک فایل با سیصد میلیون لاین از یک دیتابیس خیلی خیلی خیلی سبک تره . بخاطر زیاد بودن محتوای فایل هم سرعت کمتر نمیشه . در صورت زیاد بودن فایل ها سرعت کم میشه ولی وقتی فقط یه فایل باشه با میلیون ها لاین سرعت به مشکلی نمیخوره . چون فقط یک کوئری برای خوندن فایل هست اونم این :
وسلام . حالا هر چند خط که میخواد باشه . سرعتش بالاس !!!کد PHP:
file_get_contents("address.txt");
انجام پروژه های:php-c#-c++-java-basic-css-html-javascript-python
مشاوره با مسئول پروژه ها-حامد دعایی:+989901567129
تماس با برنامه نویس-امیرعلی استکی:+989017735378
جناب جسارته حق با شماست سرعت کار این تابع file_get_contents بالاست اما به دلیل اینکه تمامی محتویات فایل رو در رم buffer میکنه مصرف رم خیلی زیادی می تونه در فایل های حجیم داشته باشه.
برای همین اکثراً در کار با فایل های حجیم در PHP پیشنهاد میکنن که به جای file_get_contents از تابع fopen برای ایجاد یک file pointer و سپس از تابع fgets برای خواندن تیکه تیکه فایل (مثلاً خط به خط) استفاده کنن.
چون اینطوری تابع fgets فقط همون مقدار از فایل که نیازه رو تو مموری بافر میکنه و نه ممکنه که اخطار سر ریز بافر در حجم های خیلی بالا پیش بیاد و نه مشکل مصرف بیش از حد رم داره.
نمونه کد در این لینک: http://stackoverflow.com/questions/1...e-files-in-php که البته طبق گفته این لینک که درست هم هست علاوه بر مشکل سرعت و بافر در حجم های خیلی زیاد ممکنه مشکل Time Out هم پیش بیاد.
همچنین درباره سرعت دیتابیس نسبت به فایل هم پیشنهاد میکنم لینک های زیر رو مطالعه کنید:
http://stackoverflow.com/questions/6...database-speed
http://stackoverflow.com/questions/8...e-access-speed
درسته فایل دسترسی سریع تری داره اما در مقیاس اطلاعاتی خیلی زیاد برای خود مدیر سایت مشکل ساز میشه و حتی بعداً اگه بخواد سایت رو بفروشه نمی تونه.
به نظر بنده هم همین موضوع هست که کار با یک فایل بسیار بسیار بزرگ در حد 20 گیگ ( حدود 300 میلیون خط ) در یک سرور معمولی بسیار سخت هست . به دو دلیل . اول اینکه شما باید یک فایل رو مدام در حال ادیت قرار بدید ( اگر دیتابیس ایستا باشه مثل تیبل پست های وردپرس مشکلی نیست ) ولی اگر یک دیتابیس با این حجم مدام در حال نوشتن و ویرایش باشه قطعا به مشکل خواهد خورد دقیقا مثل موتور MyISAM که کوئری ها در صف قرار میگیرن
بنده خودم الان سخت به دنبال روشی هستم که سرعت کار با دیتابیسم رو افزایش بده و قطعا فردا دیتابیس رو در یک فایل متنی مثل csv میریزم و تست میکنم . البته که خود phpmyadmin از موتور csv پشتیبانی میکنه ولی هیچ کس توصیه نمیکنه
- - - Updated - - -
البته کوئری زیاد هست ولی بدترین کوئری این کوئری ای که معرفی کردید هست به دلیل اینکه تمام فایل به یکباره در سیستم باز میشه بدون هیچ لیمیتیشنی . حتی دیتابیس رو هم لیمیت قرار میدن براش چه برسه به یک فایل چند ده گیگی . شما از nosql در فایل های چندین گیگی دینامیک استفاده میکنید ؟
ویرایش توسط hoka : March 25th, 2017 در ساعت 01:12
و باز هم دوستان متخصص
من نگفتم عدل بیان همینی که من نوشتمو استفاده کنن . این کدی که من نوشتم یه کد مفهومیه فقط دوست عزیز . کاش فرق کد مفهومی و نمونه کد رو میدونستید !!!
درسته فایل دسترسی سریع تری داره اما در مقیاس اطلاعاتی خیلی زیاد برای خود مدیر سایت مشکل ساز میشه و حتی بعداً اگه بخواد سایت رو بفروشه نمی تونه.
دیگه اون بستگی به سلیقه شما داره که چطوری با NoSQL کار کنید . اگر قرار باشه مثل یه برنامه نویس تازه کار همه اطلاعات رو بریزید توی یه فایل با فرمت txt که حتی خروجی فایل رو هم نتونید کنترل کنید که نه تنها تو فروش سایت به مشکل میخورید بلکه هر کی هم رسید میشه هکر و هکتون میکنه . باید اصولی کار بشه .
شما فرق کد مفهومی و نمونه کد رو میدونید ؟
واقعا هر سری من خواستم تو این انجمن به کسی کمک کنم بعدش اعصاب خوردی بوده برام . مشکل دوستمون حل شد . با تیم ویور نمونه کد براشون نوشتم که کلا مشکلشون حل شد
حالا این وسط یه چیزی واقعا برای من عجیبه . اونموقع که این آقا نیاز داره . هیچ کس وارد تاپیکش نمیشه . دو روز سه روز که گذشت مشکلش که توسط یکی مث من حل شد همه میشن متخصص میریزن داخل تاپیکش و شروع میکنن نظر دادن . مثل سری قبلی که دوستان تفاوت کارل پی اچ پی و زبان کرل رو نمیدونستن . اونوقت میخواستن به من توجیه کنن که کرل یه چیز دیگس
من خودم تا الان NoSQL که حجم فایل هام بیشتر از 3KB بشه کار نکردم . چون به نظرم اصولی نیست . حتی برای insert کردن در یک تیبل در دیتابیس . ولی خب الان مشکل دوستمون چیز دیگه ایه و نیاز ایشون چیز دیگه
ویرایش توسط phpcoding : March 25th, 2017 در ساعت 05:28
انجام پروژه های:php-c#-c++-java-basic-css-html-javascript-python
مشاوره با مسئول پروژه ها-حامد دعایی:+989901567129
تماس با برنامه نویس-امیرعلی استکی:+989017735378
عزیز جان خودتون رو ناراحت نفرمایید . بنده اگر شرکت کردم در تاپیک میخواستم اطلاعاتم بالا بره و کار خودم هم حل بشه که البته فکر کنم شما دوست ندارید کسی روی دانش شما بحث بکنه . باز هم از استارتر عذرخواهی میکنم که شرکت کردم در تاپیکشون . بیشتر همون مقالات خارجی رو میخونم که ناراحتم نمیشن اینقدر سریع
شما هم سعی بفرمایید در انجمن گفت و گو کنید شاید دانش بقیه هم به سطح شما برسه
ویرایش توسط hoka : March 25th, 2017 در ساعت 07:28
جناب جسارتاً می دونید مشکل شما چیه که هر بار در کمک به دیگران به قول خودتون عصبانی میشید؟ مشکل شما جسارتاً اینه که تحمل بحث و گفتگو درباره نظریه خودتون رو ندارید!
حتی مایکروسافت و سایر شرکت های به اون گندگی انقدر بار ها اشتباه کردن و بقیه حتی چهار تا آدم ساده بهشون تذکر دادن که همین ثابت میکنه که یه برنامه نویس نیازمنده بحث پذیری و جنبه بالا در نقد شدن هست.
اینکه شما تا یه نظر مخالف خودتون ببینید گارد بگیرید و بقیه رو مسخره کنید بگید باز متخصص ها آمدن شاید به نظرتون هیچ مشکلی نداشته باشه اما در دراز مدت اطرافیان کمتری حداقل در حیطه برنامه نویسی کنار شما می مونن چون متاسفانه روحیه مثبت کار تیمی رو ندارید (که البته اکثر ایرانی ها ندارن).
درباره NoSQL هم جسارتاً کی گفته یعنی صرفاً ذخیره مستقیم اطلاعات در فایل؟ در جریان هستید که NoSQL خودش یه روش استفاده از پایگاه داده حساب میشه؟
NoSQL به معنای بدون SQL نیستش که خودمون تو فایل ذخیره کنیم NoSQL مخفف Not Only SQL هستش یعنی نه فقط SQL اما بازم DBMS های خودش رو داره که کاربرد مشابه یه DBMS در حالت SQL رو داشته باشن.
https://fa.wikipedia.org/wiki/%D9%86...88%D8%A7%D9%84
باز هم میگم نه من ادعایی دارم که برنامه نویسم و اینا و نه هیچ کدوم از دوستانی که تو تاپیک شرکت کردن اما خب وقتی نظریه مطرح میشه سایر نظریات مربوط به اون حیطه هم باید شنیده (البته اینجا خونده) بشه.
مثل این می مونه شما نماینده مجلس باشید یه نظریه به صحن علنی مجلس بدید بعدش اگه کسی مخالفتون بود اونو خنگ و جوجه و... بمانید(مجلس رو مثال زدم).
ویرایش توسط AtrafNet : March 25th, 2017 در ساعت 10:06
من مشکلی با شما دوستان ندارم . اتفاقا خوشحال میشم چند نفر بهتر از خودم رو می بینم و باهاشون بحث میکنم . چهارتا چیز شما بلدی دوتا چیز من . انتقال اطلاعات میکنیم . حالا یا شما دانشت بیشتره یا من . من نه حسادت میکنم به دانش کسی نه از کسایی که دانششون از من بیشتر متنفرم . ولی شما خودتون کلاهتون رو قاضی کنید . تاپیک قبلی یه اعصاب خوردی واقعی بود واسه من حق بدید دیگه نتونتم با کسی اینجا کنار بیام . دوستان میان لینک زبان کرل میدن . میگن برو ببین توش زده کرل . همون کرل پی اچ پیه . تاپیک قبلی که من توش شرکت کردم رو میتونید برید ببینید . دوستان فک کردن هر گردی گردوئه . چون کارل پی اچ پی cURL نوشته میشه زبان کرل هم cURL پس این دوتا یکین . البته از نظر اینا . حالا هر چقدرم که شما پا وایسی که ثابت کنی آقا کارل یه چیزه . کرل یه چیز دیگه . کسی به گوشش نمیره . حرف خودشونو میزنن . لینک سمپل های زبان کرل رو دادن تو تاپیک میگن این هم لینک کارل . جدا از این گیر دادن میگن چرا میگی کارل ؟ کارل چیه کارل درست نیست . سی یو ار ال درسته . حرف من تو اون تاپیک این بود . زبان کرل که یه چیز دیگس . اصلا نمیشه کرل و کارل رو یکی کرد . حالا کسایی که دوست دارن به کارل میگن کارل . مثل من و خیلی از دوستان دیگه . کسایی هم که دوست دارن میگن سی یو ار ال که تلفظ درستشه . یعنی کلاینت یو ار ال .
بگذریم . قصد من بی احترامی به کسی نیست . فقط میخوام به قول شما یکم جنبه نقد پذیری دوستان بالا باشه . وقتی میگم دوست عزیز این زبان کرله و کارل پی اچ پی نیست این هم مدرک و شواهدش دیگه یه لنگه پا سر حرفش واینسته و چهارتا لینک بی مربوط دیگه بده که بدتر اعصاب منو خورد کنه . توقع عذر خواهی هم از کسی ندارم . وقتی اشتباهی میکنن سکوت کنن این کار که از دستشون بر میاد ؟
در کل از شما و یوزر
hoka عذر میخوام اگه بی احترامی شد
ویرایش توسط phpcoding : March 25th, 2017 در ساعت 13:13
انجام پروژه های:php-c#-c++-java-basic-css-html-javascript-python
مشاوره با مسئول پروژه ها-حامد دعایی:+989901567129
تماس با برنامه نویس-امیرعلی استکی:+989017735378
در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)