PHP ve MySQL tabanlı sitemin yavaşlığı kodlamaları tekrar gözden geçirmemi sağladı.
Bir test yapmaya karar verdim. Benim gibi ikilemde kalan arkadaşlar için testin sonuçlarını aşağıda paylaştım. Sonuç olarak; Referer kaydı vs. gibi, o anda okunup değerlendirilmeyecek bazı kayıtları tutarken veritabanı yerine dosya kullanmaya karar verdim.
TEST:
On karakter uzunluğundaki bir metni, file_put_contents() fonksiyonunu kullanarak dosyaya 100 kez yazdırıp süreleri hesaplattım. Aynı metni MySQL veritabanına INSERT ile 100 kez yazdırıp süreleri hesaplattım. Aşağıdaki tabloda ilk rakam toplam geçen süreyi, ikinci rakam bir önceki basamaktan sonra geçen süreyi gösteriyor.
FILE 1x10 satır yazmak için geçen zaman: 0.0034 0.0034
FILE 2x10 satır yazmak için geçen zaman: 0.0063 0.0029
FILE 3x10 satır yazmak için geçen zaman: 0.0091 0.0028
FILE 4x10 satır yazmak için geçen zaman: 0.0116 0.0025
FILE 5x10 satır yazmak için geçen zaman: 0.0142 0.0026
FILE 6x10 satır yazmak için geçen zaman: 0.0167 0.0025
FILE 7x10 satır yazmak için geçen zaman: 0.0193 0.0026
FILE 8x10 satır yazmak için geçen zaman: 0.0218 0.0025
FILE 9x10 satır yazmak için geçen zaman: 0.0244 0.0026
FILE 10x10 satır yazmak için geçen zaman: 0.0269 0.0025
DATA Bağlanana kadar geçen zaman: 1.0449 1.018
DATA 1x10 satır yazmak için geçen zaman: 1.6599 0.615
DATA 2x10 satır yazmak için geçen zaman: 2.26 0.6001
DATA 3x10 satır yazmak için geçen zaman: 2.8264 0.5664
DATA 4x10 satır yazmak için geçen zaman: 3.3593 0.5329
DATA 5x10 satır yazmak için geçen zaman: 3.8677 0.5084
DATA 6x10 satır yazmak için geçen zaman: 4.3762 0.5085
DATA 7x10 satır yazmak için geçen zaman: 4.8846 0.5084
DATA 8x10 satır yazmak için geçen zaman: 5.3932 0.5086
DATA 9x10 satır yazmak için geçen zaman: 5.9182 0.525
DATA 10x10 satır yazmak için geçen zaman: 6.4345 0.5163
Testi daha fazla satırla veya daha fazla karakter içeren metinle tekrarladığımda işlem 30 saniyeyi aştığından işlemi kesmek zorunda kalıyordu. O yüzden o sonuçları vermedim bile.
Bir kullanıcı bağlı iken, veritabanına göre bu kadar iyi sonuçlar veren dosya sistemi acaba fazla kullanıcı bağlıyken de aynı performansı gösterir mi? Tecrübeli arkadaşların cevaplarını bekliyorum.
Bir test yapmaya karar verdim. Benim gibi ikilemde kalan arkadaşlar için testin sonuçlarını aşağıda paylaştım. Sonuç olarak; Referer kaydı vs. gibi, o anda okunup değerlendirilmeyecek bazı kayıtları tutarken veritabanı yerine dosya kullanmaya karar verdim.
TEST:
On karakter uzunluğundaki bir metni, file_put_contents() fonksiyonunu kullanarak dosyaya 100 kez yazdırıp süreleri hesaplattım. Aynı metni MySQL veritabanına INSERT ile 100 kez yazdırıp süreleri hesaplattım. Aşağıdaki tabloda ilk rakam toplam geçen süreyi, ikinci rakam bir önceki basamaktan sonra geçen süreyi gösteriyor.
FILE 1x10 satır yazmak için geçen zaman: 0.0034 0.0034
FILE 2x10 satır yazmak için geçen zaman: 0.0063 0.0029
FILE 3x10 satır yazmak için geçen zaman: 0.0091 0.0028
FILE 4x10 satır yazmak için geçen zaman: 0.0116 0.0025
FILE 5x10 satır yazmak için geçen zaman: 0.0142 0.0026
FILE 6x10 satır yazmak için geçen zaman: 0.0167 0.0025
FILE 7x10 satır yazmak için geçen zaman: 0.0193 0.0026
FILE 8x10 satır yazmak için geçen zaman: 0.0218 0.0025
FILE 9x10 satır yazmak için geçen zaman: 0.0244 0.0026
FILE 10x10 satır yazmak için geçen zaman: 0.0269 0.0025
DATA Bağlanana kadar geçen zaman: 1.0449 1.018
DATA 1x10 satır yazmak için geçen zaman: 1.6599 0.615
DATA 2x10 satır yazmak için geçen zaman: 2.26 0.6001
DATA 3x10 satır yazmak için geçen zaman: 2.8264 0.5664
DATA 4x10 satır yazmak için geçen zaman: 3.3593 0.5329
DATA 5x10 satır yazmak için geçen zaman: 3.8677 0.5084
DATA 6x10 satır yazmak için geçen zaman: 4.3762 0.5085
DATA 7x10 satır yazmak için geçen zaman: 4.8846 0.5084
DATA 8x10 satır yazmak için geçen zaman: 5.3932 0.5086
DATA 9x10 satır yazmak için geçen zaman: 5.9182 0.525
DATA 10x10 satır yazmak için geçen zaman: 6.4345 0.5163
Testi daha fazla satırla veya daha fazla karakter içeren metinle tekrarladığımda işlem 30 saniyeyi aştığından işlemi kesmek zorunda kalıyordu. O yüzden o sonuçları vermedim bile.
Bir kullanıcı bağlı iken, veritabanına göre bu kadar iyi sonuçlar veren dosya sistemi acaba fazla kullanıcı bağlıyken de aynı performansı gösterir mi? Tecrübeli arkadaşların cevaplarını bekliyorum.