数据库优化

1、防SQL注入
    a、PDO预处理
    b、使用php内置过滤敏感字符。     "  '  #  ;
            mysql_escape_string()    addslashes()

2、提高页面加载速度
     a、减少http请求
              减少图片、CSS文件、JavaScript
              使用浏览器的缓存
     b、Javascript要写在网页尾部。
     c、CDN加速
     e、页面静态化
     f、经常查询的数据要缓存到内存

3、多台服务器的SESSION数据怎么共享
    a、将session数据存放到数据库
    b、存放到单独一台session服务器
    c、将session存放到cookie。淘宝有的功能这么做。

4、高并发(同时很多去访问网站):

  1、负载均衡,将请求分配给不同服务器。
       2、将热数据缓存
       3、消息队列。淘宝支付排队、12306排队买票
                             12306验证码为什么搞这么难。

负载均衡、可靠性、扩展性
数据库读写分离
冗余技术、横向扩展。

 5、微信( weiphp ) Laravel(www.laravist.com)  FQ:greenvpn

 6、读写分离    主数据负责写操作(insert),从数据负责读(select)
     读写分离怎么做数据同步:从库去主库复制bin-log(二进制日志)。bin-log是以二进制方式
     存放写操作SQL语句。
    主从数据库一般一主多从或一主一从 
    因为读操作多,所以从数据库多。

 7、MySql分库。db1数据库服务器只存放用户数据  db2只存放商品数据  db3只存放订单。
    对于MySQL,单表数据行数不能超过百万。          
    MySQL分表  
        水平分表  (将数据划分到多个表)

        user有两个亿
        id  name
        1   张三   
        2   李四     

        每个表一个亿
        vip_user  
        id name
        1 张三

        user2
        id name
        2 李四

        //李四要登录。vip_user表存放的是经常登录用户。
    

       水平分表的优点:减少单表数据行数,从而加快查询速度
       缺点:增加代码的维护难度。


        垂直分表(将字段划分到多个表)

        user 表   一个亿用户。  
        id  name  nickname(昵称) sex address  email password xueli  height sanwei  phone weight qq birth
        addTime  loginTime   logoutTime  jifen   

        经常用到字段  id name nickname email password jifen
        不常用的字段分到另外一个表 user_detail

        商品表
            id gname price  Gdesc(text)

        垂直分表优点:查询速度快

 8、分区

 9、广州市分为很多个区。

 10、CDN (内容分发网络  Content Delivery Network)

     CDN概念:通过在网络各处(网络节点)放置服务器,将静态资源(CSS文件 js 图片、视频)缓存在离用户最近的地方,使用户以最快速度获取数据。

     就近原则。

     武汉有机房(华中)  岭南(广州)  华北(北京)

         百度:因为用户分布广泛。百度服务器机房主要城市都有。

   
   CDN公司:阿里、SAE 、百度、又拍云、七牛

 11、代理?   火车代售点(代理)   代理点靠近用户

      反向代理是靠近服务器。其实就是缓存。


 反向代理先在反向代理服务器找资源,如果代理服务器没有你要的资源。才去服务器拿。


  反向代理实现的软件:Nginx    Nginx优点:并发处理能力高,比apache并发能力强。
                      squid 专业

  12、分布式文件系统。  A文件服务器存放用户数据。  B文件服务器存放商品数据。

  13、站内search

          like的速度非常慢。为什么?like会导致全表扫描。

          select id,name from good where name like "%fff%";

         大型网站的站内搜索用的是开源搜索引擎 sphinx(斯芬克斯)



  14、NoSQL的数据存放到内存。 NoSQL能不能替代MySQL,暂时不能。


         1、内存贵。

         2、数据安全问题。

   15、DAL数据访问层( 提供很多方法给你去拿数据 )

           简述MVC。

           MVC是一种程序分层思想。

           M是Model,Model负责网站的业务逻辑( 一般的网站的业务逻辑是数据库操作 )

           V是view,view负责把控制器分配过来的数据呈现( 渲染 )给用户

           C是controller 是Model与V的桥梁。

           一般是应用比较多的情况下需要一个DAL,  QQ 游戏 微信( 广州海珠区TIT创意园 )
       

       微信要拿用户数据,要调用已经写到一些方法。


      16、业务拆分

             应用怎么关联。通过链接就可以关联

             百度:搜索、地图、贴吧   


     17、内存缓存怎么做?
             要将热数据缓存。

             缓存时间怎么设置?

                 缓存时间不能设置成一样。缓存时间一样会导致雪崩。

      18、缓存模块!!!    cache  S()

转载于:https://www.cnblogs.com/xiabibi/p/5204894.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值