您的位置:首页 > 数据库

数据库优化思路

2016-05-04 00:29 357 查看
最近在学习后端,弄到数据库这一块,一直听到数据库优化,下午在公司老师提了下,现在记录下,大体的方法。

首先: 最根本的是优化MYSQL的 一些配置参数,因为MYSQL原生只支持,数十个并发访问。要是数量级是万级百万级的并发访问,要进行MYSQL的配置优化。

然后: 开一个新的项目的时候,对需求分析建模的时候数据的设计,要设计的尽量最优。表与表之间的关系,多表连接查询,

建立更好的索引(索引遵循前缀)

最后就是 程序员级别的优化, 对 我们写的SQL语句进行优化,使用explain 关键字。可以看到语句的效率情况。

基本我目前大体上了解到这些东西。 以后了解了更多的再进行补充。

还有 其他的一些问题。

我们访问网站的时候是可以看到 图片,音频,视频, 怎么在数据库存储呢?

直接把文件存到数据库,通过转换成二进制存储,但是这样的话,会很耗费数据的资源和速度变慢,再这个追求更好的用户体验的时代,这样做用户是无法容忍的。

另一种方法是 把文件的地址url 作为字段存储在数据库,然后再通过编程语言进行访问获得。

这里给一片文章的地址,关于 存储。

文章名: 三种东西永远不要放到数据库里。

http://developer.51cto.com/art/201211/364472.htm

然后还有一个小知识点 如何实现下载文件。

下面给出代码: java

request.setCharacterEncoding("utf-8"); //设置字符集,防止乱码
String one=request.getParameter("one");//这个是选择下载那个文件
if("1".equals(one)){
response.setHeader("Content-Disposition", "attachment;filename=123.txt");//下载文件 在响应头里面给出信息  filename  是提供给用户的下载文件名称
String path=this.getServletContext().getRealPath("/123.txt");  //文件存储真是路径
FileInputStream fis=new FileInputStream(path);//读取字节流
byte[] buff=new byte[1024]; //缓冲
int len=0;
OutputStream os=response.getOutputStream(); //输出流
while((len=fis.read(buff))>0) //判断文件是否传输完毕
{
os.write(buff,0,len); //写
}
os.close(); //关闭
fis.close();//关闭
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: