首页 > 后端 > 经验 > 大文件保存在哪个数据库,mysql 怎么样贮存大文件

大文件保存在哪个数据库,mysql 怎么样贮存大文件

来源:整理 时间:2023-08-22 23:13:37 编辑:黑码技术 手机版

本文目录一览

1,mysql 怎么样贮存大文件

你要是做程序的话,应该把图片存在设置的文件夹中,数据库只存图片的路径。 如果想存文件建议用oracle。mysql对存储文件相对效率不高。
数据库里最好只存放文件路径
在my.ini中有设置1般情况下,在mysql安装目录的data目录下

mysql 怎么样贮存大文件

2,Mysql数据文件存放在什么地方

win7对mysql的安装路径,做了改变,data在一个隐藏文件中,路径是这样的C:\ProgramData\MySQL\MySQL Server 5.5\data就是program Files 旁边,有个隐藏的文件叫ProgramData打开隐藏文件查看的方式为:左上角的组织 -- 文件夹搜索选项-- 查看 --隐藏文件和文件夹 这边设置改下,

Mysql数据文件存放在什么地方

3,如何将大文件写入到数据库中

最近利用空闲时间自己在写一个文件备份工具,因为我磁盘上的很多文件很重要,例如很多PPT和讲义。所以需要经常备份,而且因为这些文件很多,所以需要增量备份。我尝试用过windows自带的ntbackup工具,但感觉不是很爽。它不支持压缩备份,而且界面也有点复杂。为了响应伟大领袖的“自力更生,丰衣足食”的号召,咱决定自己写一个工具,专门备份到数据库。支持压缩,支持加密,支持增量。本文分享一下其中一些重点的技术细节其中一个关键的技术就是将文件使用二进制的方式存放在数据库的varbinary(max)的字段中。该字段最大允许的长度为2GB。对于一些小文件,我们可以一次性读取它的所有字节,然后一次提交到数据库/// <summary>/// 这个方法演示了如何一次提交所有的字节。这样导致的结果是:应用程序立即需要申请等同于文件大小的内存/// </summary>static void SubmitFileByOnce() string file = @"F:\功夫熊猫.rmvb";//文件大小为519MB byte[] buffer = File.ReadAllBytes(file); using (SqlConnection conn = new SqlConnection("server=(local);database=demo;integrated security=true")) using (SqlCommand cmd = conn.CreateCommand()) cmd.CommandText = "INSERT INTO Files(FileName,FileContents) VALUES(@fileName,@fileContents)"; cmd.Parameters.AddRange( new[] new SqlParameter("@fileName",file), new SqlParameter("@fileContents",buffer) }); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } }}但是,上面的方法有几个问题,主要体现在如果文件比较大的话1. 它需要一次性很大的内存,具体数据等同于文件大小。因为File.ReadAllBytes方法是将所有字节全部读入到内存。2. 它会导致提交失败,就是因为数据太大了。数据库也会拒绝。那么,我就对这个方法做了一下改进,将文件拆分为5MB一段,也就是说,此时每次申请的内存只有5MB。这就大大地提高了可用性。/// <summary> /// 这个方法是将文件切分为5MB的块,每次只是提交5MB,所以可能多次提交,但内存占用就比较小 /// </summary> static void SubmitFileStepByStep() string file = @"F:\功夫熊猫.rmvb";//以这个文件为例,大小为519MB,一共需要的时间大约94秒。还是有点慢的,所以还可能需要进行压缩 FileStream fs = new FileStream(file, FileMode.Open); byte[] buffer = new byte[5 * 1024 * 1024]; int readCount; using (SqlConnection conn = new SqlConnection("server=(local);database=demo;integrated security=true")) conn.Open(); while ((readCount = fs.Read(buffer, 0, buffer.Length)) > 0) using (SqlCommand cmd = conn.CreateCommand()) cmd.CommandText = "INSERT INTO Files(FileName,FileContents) VALUES(@fileName,@fileContents)"; cmd.Parameters.AddRange( new[] new SqlParameter("@fileName",file), new SqlParameter("@fileContents",buffer) }); cmd.ExecuteNonQuery(); } } conn.Close(); } }这样的话,有一个后果就是一个文件,可能在数据库中会有多条记录。所以在读取的时候,我们需要对其进行合并static void DownloadFile() string file = @"F:\功夫熊猫.rmvb"; string destfile = @"E:\Temp\Temp.wmv"; using (SqlConnection conn = new SqlConnection("server=(local);database=demo;integrated security=true")) using (SqlCommand cmd = conn.CreateCommand()) cmd.CommandText = "SELECT FileContents FROM Files WHERE FileName=@fileName"; cmd.Parameters.AddRange( new[] new SqlParameter("@fileName",file), }); conn.Open(); SqlDataReader reader = cmd.ExecuteReader(); FileStream fs = new FileStream(destfile, FileMode.Append, FileAccess.Write); while (reader.Read()) byte[] buffer = (byte[])reader[0]; fs.Write(buffer, 0, buffer.Length); } fs.Close(); reader.Close(); conn.Close(); } }}本文由作者:陈希章

如何将大文件写入到数据库中

文章TAG:大文件保存在哪个数据库mysql怎么样贮存大文件

最近更新

  • .net程序版本.net程序版本

    。netframework版本乱七八糟的,如何看待版本,netframework//在c#中获取一个系统,Version对象,//描述公共语言运行库的宿主。大前提,net每版本可以共存!的引用,net版本不依赖于数字版本,而是依.....

    经验 日期:2024-04-23

  • c 可爱的插件winform,ppt插件图片可爱c 可爱的插件winform,ppt插件图片可爱

    c#asp.net的项目可以调用winformform吗?C#中如何用Winform改变程序的主题风格有现成的库,irisskin2.dll搜索皮肤插件irisskin2,下载后引用到工具箱中。下载的文件应该包含皮肤文件,如何使.....

    经验 日期:2024-04-23

  • 不需要插件的网站不需要插件的网站

    不需要安装插件。想问问有谁看过网站的NBA直播?不要下载插件,不然我给你推荐一个直播网,我觉得每天直播很多比赛很有用!网上求电影网站要不要干净插件不乱找不到页面,从百度上知道龙蟠。com.....

    经验 日期:2024-04-23

  • ae光工厂插件教程,ae插件duik安装教程ae光工厂插件教程,ae插件duik安装教程

    ae教程你学到了什么?AE光剑特效制作图文教程谁有MACaeGuang-3插件能不能给我发个不是很感谢douzi10204283@163.com的邮件...ae如何将主项目与材料1连接起来。AE保存项目时如何保存素材1.....

    经验 日期:2024-04-23

  • chrome 插件发送消息,微信定时发送消息插件chrome 插件发送消息,微信定时发送消息插件

    chrome插件开发一个url拦截,chromeBrowser的插件如何将访问权限转移到Chrome扩展库以搜索需要提取的扩展?点击进入扩展详情复制地址栏打开chrome扩展下载器。如何启用第三方Chrome插件Ch.....

    经验 日期:2024-04-23

  • itween 插件下载itween 插件下载

    Itween插件问题,Itween在求助之前用的很好,但是今天突然报错了。错误:nullreferenceexception:objectreferencenotsettoanninstanceofobjecttween,retrievalGS()(atassets/plugins/pixelp.....

    经验 日期:2024-04-23

  • 黑月编译器插件3.5下载黑月编译器插件3.5下载

    第一步,你需要下载-2编译器-1/,目前-2编译器。下面来说说如何安装彝语-2编译器-1/,官方语言交流为什么不拿出一个比黑月编译器你可以测试一下黑月编译器,如果你想用黑月。1、E语言500KB的.....

    经验 日期:2024-04-22

  • 阿酷插件 3d2014阿酷插件 3d2014

    为什么MAX2012不能安装阿酷插件?如何使用阿酷插件?方法一:使用阿酷插件检索素材。为什么阿酷插件v3.2mzp是脚本文件?此错误是运行错误:在C:programfilesAutodesk3dsMaxDesign2011scriptss.....

    经验 日期:2024-04-22