অনেক খোঁজাখুঁজির পরে, আমি শেষ পর্যন্ত একটি সমাধান খুঁজে পেয়েছি।
আমি অনেক লেখক নই, তাই এটিকে যথাসম্ভব সংক্ষিপ্ত করে তোলার জন্য আমি যথাসাধ্য চেষ্টা করব।
যতদূর আমি খুঁজে পেতে পারি, সম্ভাব্য 2 টি সমাধান রয়েছে:
এসকিউএল রিলে
http://sqlrelay.sourceforge.net/
এটি ঠিক কীভাবে প্রশ্নটি জিজ্ঞাসা করেছিল এবং আরও একগুচ্ছ। আমি এ সম্পর্কে যা জানতে পেরেছিলাম তার খুব বেশি বিশদে যেতে চাই না তবে উল্লেখ করব যে এটি একটি কার্যকর সমাধান ছিল না কারণ এটি স্বচ্ছ নয়। অর্থ এই যে প্রবাহটি নিম্নরূপ:
PHP -> Queries -> SQL Relay Extension -> SQL Relay -> Externally hosted MySQL
সুতরাং এটি মাইএসকিএল থেকে এসকিএল রিলেতে সমস্ত কোড পুনর্লিখনের সাথে জড়িত। আমাদের ক্ষেত্রে একটি বিকল্প নয়।
যা যা বলা হচ্ছে তা যদি কেউ এসকিউএল রিলে থাকা অসংখ্য বৈশিষ্ট্যের জন্য একটি নতুন নতুন স্কেল প্রকল্পের পরিকল্পনা করে থাকেন তবে এটি সুন্দর শোনাচ্ছে।
মাইএসকিএল প্রক্সি
http://forge.mysql.com/wiki/MySQL_Proxy
এই সমাধানটি আমরা ব্যবহার করে শেষ করেছি।
আমরা এটি যা করতে চাই তা করার মূল কীটি মাইএসকিএল প্রক্সিটির জন্য পুলিং LUA স্ক্রিপ্ট।
এই LUA এক্সটেনশানটি এখানে পাওয়া যাবে:
https://github.com/cwarden/mysql-proxy/blob/315ab806bb95b8223f5afd3d238eff2a40af03d8/lib/ro-pooling.lua
খুব বেশি বিশদে না গিয়ে, এখানে কয়েকটি বুনিয়াদি পরিসংখ্যান রয়েছে ... মনে রাখবেন, কম ব্যবহারের সময় এটি পরীক্ষা করা হয়:
[root@HOSTNAME etc]# netstat -na | grep ":3306 " | grep TIME_WAIT | wc
6433 38598 572537
মাইএসকিএল-প্রক্সিতে স্যুইচ করার পরে এবং জিনিসগুলিকে নিষ্পত্তি করার জন্য:
[root@HOSTNAME etc]# netstat -na | grep ":3306 " | grep TIME_WAIT | wc
32 192 2848
আপনি স্পষ্ট দেখতে পাচ্ছেন, মাইএসকিএলে TIME_WAIT বন্দরগুলি প্রায় কোনওটিতেই নেমেছে।
Mysql_pconnect / mysqli_connect (... পি: হোস্টনাম ...) ব্যবহার করে সংযোগগুলি এখন বাস্তবে স্থায়ী ।
উল্লেখ করার মতো উল্লেখযোগ্যভাবে পুলার লুয়া স্ক্রিপ্টের শীর্ষের কাছে কয়েকটি কনফিগারযোগ্য সেটিংস রয়েছে।
স্থানীয় min_idle_connitions
এবং
স্থানীয় সর্বাধিক_সংক্রান্ত_সংযোগ
এগুলি বেশ স্ব ব্যাখ্যাযোগ্য বলে মনে হয়। ব্যতীত: এটি প্রদর্শিত হবে যে প্রতিটি ব্যবহারকারীর নাম (এবং পাসওয়ার্ড? স্বীকৃত ... সম্ভবত এটি নয়) combination সংমিশ্রণটি তার নিজস্ব ক্রমাগত সংযোগগুলির সেট তৈরি করে।
সুতরাং ডাটাবেসে সংযুক্ত হবে এমন অনন্য মাইএসকিএল ব্যবহারকারীর সংখ্যা দ্বারা সর্বোচ্চ_সংস্থান_সংযোগগুলি গুণ করুন। এবং এটি আপনাকে কতটা নিষ্ক্রিয় সংযোগগুলি শেষ করবে তা একটি ধারণা দেওয়া উচিত।
সুতরাং, আমার পুনরুক্তি করা যাক তাই এই ছোট্ট ব্লার্বটি গুগলের মাধ্যমে অনুসন্ধানকারীদের জন্য কিছু কীওয়ার্ডকে হিট করেছে:
পিএইচপি ব্যবহার করার সময় কি মাইএসকিএল_পকনেক্ট ছাড়া স্থির মাইএসকিএল সংযোগ থাকা সম্ভব?
হ্যাঁ, এসকিউএল রিলে মাধ্যমে এটি করা যেতে পারে যদি আপনি আপনার ক্যোয়ারীগুলির প্রসারণের মাধ্যমে আপনার কোডগুলি নষ্ট করতে বা স্বচ্ছভাবে রো-পুলিং.লুয়া স্ক্রিপ্টের সাথে মাইএসকিএল-প্রক্সি ব্যবহার করে আপনার কোডের বেশিরভাগটিকে পুনরায় বিলম্ব করতে না চান।
আমরা প্রায় এক বছর ধরে এই জাতীয় কিছু চাইছিলাম।
উপভোগ করুন!
mysql_pconnectকিছু "ক্লিনআপ ফাংশন" দিয়ে প্রতিটি সংযোগটি কেবল ব্যবহার এবং শুরু করবেন না ?