Si usas el primer método que mencionas donde tu archivo lo subes en "binaro" a tu BD .. debes tener presente que en ese caso tienes al menos tres restricciones:
1) De PHP (en su php.ini las indica)
2) De Apache (para windows no suele tener problemas . .en Linux el famoso "php.conf" su LimitRequest.....)
3) De Mysql: por tipo de campo que usas para el campo binario "contenido" (BLOD o superior). Tambien en su configuración (my.ini o my.conf) se ajusta el tamaño de archivos que puede gestionar como "petición" (si mal no recuerdo).
Sobre el tema de gestionar archivos en Binaro sobre tu BD .. no sé si leistes este mini-tutorial .. Ahí veras como trabajar con ellos. Fijate en los comentarios sobre el tipo de campo a usar según el archivo que pretendas almacenar además del resto de configuración de PHP que va afectar a que puedas gestionar dicha cantidad de datos.
http://www.forosdelweb.com/f18/tutorial-ejemplo-subir-archivos-bd-guardando-bd-binario-127775/
Un saludo,