数据库优化思路

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值