数据库优化思路

最近在学习后端,弄到数据库这一块,一直听到数据库优化,下午在公司老师提了下,现在记录下,大体的方法。

首先: 最根本的是优化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();//关闭
        }





关注我的公众号第一时间阅读有趣的技术故事
扫码关注:

也可以在微信搜索公众号即可关注我:codexiulian
渴望与你一起成长进步!

你可能感兴趣的:(后端)