热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网站优化和数据库存储引擎区别

优化核心:就是减少对数据库的连接与操作(因为mysql是数据库的瓶颈,造成高并发);A:架构成层:分布式部署(mysql服务)①主从复制(通过读取主服务器(mysql)的二进制文件

优化核心:


就是减少对数据库的连接与操作(因为mysql是数据库的瓶颈,造成高并发);


A: 架构成层 :分布式部署(mysql服务)


① 主从复制(通过读取主服务器(mysql)的二进制文件,重新在从服务器上执行一次,同步数据);

注释:主从服务器指的是数据库的主服务和从服务

②读写分离(把数据表的增删改和查询分离开来,通过连接不同服务器的数据库,实现读写分离,提高mysql数据库的并发负载能力)

③ 搭建服务器集群 注释:通过nginx负载均衡搭建服务器集群

④ 设置缓存(redis memcache mongoDb)


B:从底层来说


  1. 选取合适的数据库引擎(myisam 和 innodb(注意他们的区别));
  2. 选取合适的字段(原则:能用小的不用大的,选取小的空间,选取运行速度快的,能选取定长的不选取变长的);尽量将一些数据转化成整型进行存储,如ip和时间
  3. 建立适当的索引,提高查询效率(索引:类似查询目录,对数据表的一类或者多列进行排序的结构,该结构支持一定的算法,可以快速的查询数据,分为主键、唯一索引、普通索引、全文索引。);

注意:
①索引使用的场景

where 条件里面涉及到的字段、order条件里面涉及到的字段。字段的值足够多样化,尽量不要重复(比如性别就不能建立索引);
索引的使用原则:用explain查询计划
a. 左原则 : like查询的时候,左边尽量不能使用%;
b. or原则 :使用or的时候,两边的字段必须是索引字段,才能使用索引,否则失效;
c.复合索引的时候,必须使用复合索引的第一个索引字段才有效 key(name,password);
d.如果mysql估计全表扫描比使用索引查询效率高时,就不要使用索引;

②myisam和innodb的区别:


  1. 事务:myisam不支持事务,innodb支持事务
  2. myisam支持压缩机制
  3. 存储文件: myisam存储文件分为:结构文件,数据文件,索引文件;innodb存储文件:结构文件、数据/索引文件;
  4. 并发性: myisam并发性较差,因为myisam使用的是表锁机制,当对表操作的时候,会将整个表锁住,但是读写速度快;Innodb并发性好,因为采用的是行锁机制,当操作数据时,智慧锁住当前的某一条记录,但是读写速度相对慢;
  5. Myisam不会根据主键大小进行排序,Innodb会根据主键的大小进行排序

C: sql 语句层


  1. 开启mysql的查询缓存
    将上次查询的结构缓存下来,以便下次从新使用; 原则:字段不参与运算,数据库发生改改变(包括结构和数据的改变),查询语句里面含有变化的条件,查询语句大小写也会生成不停的缓存;
  2. 开启慢查询日志

D:设计层


如果数据足够大,可以考虑物理谁给你的分表和虚拟化分区;
分区是两者之中比较好的方法,通过range、list、hash、key分区,把一张表分成多个区域,提高查询效率,但实际上还是一张表;



推荐阅读
  • mysql oneproxy稳定吗_Mysql 中间件 oneProxy总结
    建议使用之前把官方的文档全部通读一遍这里提供一个我的网盘地址oneproxy百度网盘0.先对oneproxy有个大概的了解,知道他所处的位置1.MySQL服务器创建t ... [详细]
  • python自学教程哪里好,python比较好的教程
    本文目录一览:1、想学python去哪里比较好? ... [详细]
  • MQ的使用
    安装环境:linuxredhatactivemq版本:5.8.01.从http:activemq.apache.orgdownload.html地址下载 ... [详细]
  • 最近学习了数据挖掘常用的两种算法:FP-Growth和K-Means。现在把我的学习结果分享给大家。以下是本文的目录,大家可以根据需要跳过一些章节:1.FP-Grow ... [详细]
  • 1、为什么要对nginx平滑升级随着nginx越来越流行,并且nginx的优势也越来越明显,nginx的版本迭代也来时加速模式,1.9. ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • Nginx简介Nginx(enginex)是一个高性能的HTTP和反向代理服务器,也是一个IMAPPOP3SMTP代理服务器。Nginx是由IgorSysoev为 ... [详细]
  • 4种分布式Session的实现方式!老大直呼666...
    前言公司有一个Web管理系统,使用Tomcat进行部署。由于是后台管理系统,所有的网页都需要登录授权之后才能进行相应的操作。起初这个系统的用的人也不多& ... [详细]
  • 高并发网站架构的核心原则其实就一句话“把所有的用户访问请求都尽量往前推“,即:能缓存在用户电脑本地的,就不要让他去访问CDN。能缓存CDN服务器上的,就不要让CDN去访问源(静态服 ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 解决php错误信息不显示在浏览器上的方法
    本文介绍了解决php错误信息不显示在浏览器上的方法。作者发现php中的各种错误信息并不显示在浏览器上,而是需要在日志文件中查看。为了解决这个问题,作者提供了一种解决方式:通过修改php.ini文件中的display_errors参数为On,并重启服务。这样就可以在浏览器上直接显示php错误信息了。 ... [详细]
author-avatar
20乐宝儿_202
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有