আমার আবেদনে, আমার INSERTs সময়ের বেশিরভাগ অংশ নিচ্ছে বলে মনে হচ্ছে। আমার স্মৃতিতে প্রচুর পরিমাণে অবজেক্ট রয়েছে (40-50,000 ডলার) যা আমি একটি টেবিলের মধ্যে sertোকাতে চাই।
একটি নমুনা টেবিল নিতে দেয়
CREATE TABLE bill (
id BIGINT(20) PRIMARY KEY,
amount INT(11) DEFAULT 0,
bill_date DATETIME DEFAULT NOW(),
INDEX (bill_date)
) ENGINE=InnoDB
3 টি সারি আমার ব্যাচের আকার হিসাবে নেওয়া, নীচে প্রবেশের জন্য ভাবতে পারি এমন পদ্ধতিগুলি
পদ্ধতির 1 - 3 টি কাঁচা সন্নিবেশ তৈরি এবং ফায়ার করুন
INSERT INTO bill (amount, bill_date) VALUES (10, '2012-01-01 00:00:00');
INSERT INTO bill (amount, bill_date) VALUES (20, '2012-01-02 00:00:00');
INSERT INTO bill (amount, bill_date) VALUES (40, '2013-02-05 00:00:00');
পদ্ধতির 2 - মানগুলিকে 1 ক্যোয়ারিতে ক্লাব করা
INSERT INTO bill (amount, bill_date) VALUES
(10, '2012-01-01 00:00:00'),
(20, '2012-01-02 00:00:00'),
(40, '2013-02-05 00:00:00');
পদ্ধতির 3 - 6 বারের পরামিতিগুলি অতিক্রম করে 1 বার এই ক্যোয়ারী ফায়ার করুন
INSERT INTO bill (amount, bill_date) VALUES
(?, ?), (?, ?), (?, ?);
পদ্ধতির 4 - প্রতি বার 2 টি প্যারামিটার পরিবর্তন করে এই প্রস্তুত ক্যোয়ারিকে 3 বার ফায়ার করুন
INSERT INTO bill (amount, bill_date) VALUES (?, ?);
অন্য যে কোনও পন্থা স্বাগত।
আমার প্রশ্ন
কোনও টেবিলে একাধিক সন্নিবেশ করার দ্রুততম উপায় কী?
আমি এই লিঙ্কটি মাইএসকিএল speedোকানোর গতিতে এবং জেডিবিসি প্রোগ্রামিংয়ের এই গাইডটি পড়েছি , তবে আমি কোনও সিদ্ধান্তে আসতে সক্ষম নই।
আমার ক্ষেত্রে -
বর্তমানে আমার টেবিলটিতে 20 ডলার কলাম রয়েছে, যার বেশিরভাগ সংখ্যা, বেশ কয়েকটি ভারচার (60) এবং 1 পাঠ্য কলাম সহ numbers মাইএসকিএল সংস্করণ 5.5। INNODB এ চলছে এবং পূর্ণসংখ্যার প্রাথমিক কীগুলিতে 1 টি সূচক রয়েছে। সমস্ত প্রশ্ন লেনদেন চালানো।
আমি জাভা থেকে আমার প্রশ্নগুলি তৈরি করি এবং কোয়েরিগুলি চালনার জন্য স্প্রিং জেডিবিসি ব্যবহার করি।
আমি বর্তমানে অ্যাপ্রোচ 3 অনুসরণ করছি, ক্যোয়ারী তৈরি করতে সময় লাগে না এমন হিসাবে 20,000 সন্নিবেশ খালি টেবিলের জন্য 10 সেকেন্ড সময় নিচ্ছে।
জিনিসগুলিকে দৃষ্টিকোণে রাখতে, টেবিল থেকে ডেটা আনতে 100-200 মিলিস লাগবে।
আমি কি অনুপস্থিত কিছু আছে? আমি কীভাবে দ্রুত সন্নিবেশগুলি করব?