trgino adlı üyeden alıntı: mesajı görüntüle
uniq index metodunda iki sütünü birden uniq index kontrolu yaptırabilirsiniz.
yani sadece mail sütünün veya sadece pass sütününü tek başına uniq index yapmak yerine mail+pass olarak da uniq index oluşturabilirsiniz.
aynı şekilde daha önce başka bir arkadaşın dediğin gibi ek bir hash sütünü ile uniq kontrolu da olabilir. seçim size kalmış
insert ignore into tablo (mail,pass) values ('mail@example.com','1');
veya
insert ignore into tablo (mail,pass,hash) values ('mail@example.com','1','uniqhash');

on duplicate key yöntemi ile yaparsanız daha yavaş olacaktır.
MCERAN adlı üyeden alıntı: mesajı görüntüle
Mail sütunu için, tablonuzda unique index oluşturun.
Insert işleminde aynı kayıt varsa duplicate entry mesajı döndürür ve eklenmesini engeller.
Mesajı verirse işlem durur bu yüzden ignore parametresini insert sorgunuza ekleyin böylece bu içerik var dese bile diğer insert işlemine devam eder

Unique index oluşturma
https://www.mysqltutorial.org/mysql-unique/
Insert ignore kullanım örneği
https://www.mysqltutorial.org/mysql-insert-ignore/

Ayrıca insert işlemini tek tek değil multiple insert olarak yaparsanız dahada hızlandıracaksınız.
https://www.sqlservertutorial.net/sq...multiple-rows/

Milyarlık kayıttan bahsettiniz index için ram ihtiyacınız olacaktır

Ayrıca db partition ilede veritabanını bölümlendirerek daha hızlı insert işlemleri yapabilirsiniz.

Günün sonunda tüm bunların yanında cpu ve ram donanımınızda hız konusunda etkendir.

Yönlendirmeleriniz için tekrar Teşekkür ederim hocam, örneklerinizden yola çıkarak ve Ram takviyesi, C# ile bir program yazarak sorunumu çözdüm.