Ben üç farklı MySQL tarih / saat depolama seçenekleri ne kadar iyi performans hakkında bazı gerçekten iyi bilgi ve kriterler gösteren bir makale üzerine okuyordu.
MySQL DATETIME vs TIMESTAMP vs INT performance and benchmarking with MyISAM
Makaleyi okurken kullanarak ints sadece bir atık vardır ve yerine MySQL Datetime veya damgası sütun türleri ile gitmek gerektiği fikrini almak başlar.
Ancak, yazının sonuna doğru o MySQL fonksiyonları kullanarak değil, bir test daha yapar ve aniden düz INT en 2x as fast as the two MySQL options when searching by unix timestamps olduğunu görüyoruz.
Bu yüzden birden kafama dank etti - Unix Epoch kapalı duh, what do PHP apps all use? time()! Hemen hemen her php uygulama bazlar kendi mantığı. Belirli bir süre içinde sonuç için en sorgular zamanında (dayalı başlamak anlamına gelir) and then are converted to work with MySQL's fields.
Bu şu bana bırakır:
Unix Timestamps stored as INT's are faster, take less space, and work natively with PHP's time() based calculations.
MySQL Date types are more suited to operations and logic from the MySQL side.
For the time being both Unix And MySQL Timestamps only work until 2037 which means that you must use a datetime field for larger dates in the future.
MySQL commands like
date = NOW()
can lag when using replication causing data inconsistencies.
So applying this to real life we see that answer that these results given that most really DBA's would use a better engine like PostgreSQL - is there arny
Ancak DB mantık kullanarak seviyesine olacağını en apps olasılıkla PostgreSQL ile giderdim. Aslında en iyi seçenek gibi bize hangi programcılar tüm kalanı sadece küçük alanları tutarak yapar (bunun doğru olduğunu biliyorum) a storage tank for our data için MySQL kullanmak anlamına gelir, hızlı, UNIX INT ait görünüyor.
Peki siz ne düşünüyorsunuz?
Are timestamps really more suited to PHP apps than the MySQL date fields?