• Mysql优化和web服务器优化


    web服务器优化:

    1.提高并发量 负载均衡(分布式服务架构)并发量更高的软件例如nginx
    
    2.页面静态化  不经常发生数据变动的动态网页生成静态网页,提高访问速度
    
    3.内存缓存优化 把数据缓存到内存中,提高数据相应速度
    
    4.数据库优化 一般数据读写频繁,可以缓存到内存中。但是内存容量有限,不能够把大量数据缓存,所有优化数据库软件本身是很有必要的。

    Mysql优化:

    1.存储层  存储引擎 列类型选择 范式(三范式)
    
    2.设计层  索引 缓存  分区表
    
    3.sql层  使用执行效率高的sql语句  explain执行计划  慢查询日志记录
    
    4.架构层  分布式数据库架构   使用多台数据库服务器,解决数据库访问并发的问题
    
    主从复制   从服务器复制主服务器数据

    存储引擎方面:

    myisam

    文件结构方面:.frm 结构文件  .myd数据文件 .myi索引文件

    数据存储顺序,是插入顺序没有进行排序操作

    innodb

    文件结构 .frm结构文件 数据和索引在一个文件里,可以选择把innodb的数据和索引文件,根据表名称进行分离。在创建表的时候,就进行分离。

    临时设置分离

    mysql > show variables like 'innodb_file_per_table';

    开启

    mysql > set global innodb_file_per_table=1;

    文件结构就成了 .frm 结构文件  .ibd 数据和索引文件

    数据存储顺序,是根据主键进行排序操作

    还有事务和外键功能

    并发性好 innodb在进行并发操作时,为了数据的一致性,可以使用行锁机制(锁表粒度)。影响数据只为当前行。并发性较好一些。

    mysiam 读写比较好 innodb 并发性好

    类型的选择:

    选取占据空间小的字段,占用小,数据查询遍历就会快速。

    内容长度固定字段  整型存储  

    数据库按照三范式进行设计:

    范式是一种规范或者约束。如果设计的数据库表是符合范式的,被认为是良好的数据设计。
    
    第一范式  数据字段具有原子性,业务上不可再分割。
    
    第二范式  数据具有唯一性(主键id)。
    
    第三范式  数据字段和主键具有紧密联系,不允许出现冗余(rong[重复])字段

    逆(反)范式

    真实业务的环境,为了能够实现更好的数据库表的性能,会选择不遵守范式的操作。
    遵守第三范式,查询数据,需要连表操作,如果数据表数据很多,连表操作,会耗费大量时间。为了提高查询效率。可以选择把数据字段存储到同一个表中。
    建立了冗余字段之后,一定要注意维护数据的一致性。
    
    

    索引方面:

    索引是一种数据结构(存储数据的方式),存储字段值的内容和对应真实数据的物理地址。
    查询数据通过索引查询到物理地址,再通过物理地址直接定位数据。
    索引是一种以空间换取时间的方式,牺牲了写的速度,提高查询速度。

    为什么使用索引后速度会变快:

    之前查询数据需要遍历整个数据表

    建立索引之后,查询变为:

    查询字段=>索引=>物理地址=>真实数据

     一小部分,后面补充~

  • 相关阅读:
    开源月刊《HelloGitHub》第 62 期
    手痒想写项目?我挑了 10 个开源项目送你
    有趣的开源项目集结完毕,HelloGitHub 月刊第 63 期发布啦!
    72 个网络应用安全实操要点,全方位保护 Web 应用的安全
    二十分钟学会Scratch图形化编程
    嵌入式linux与物联网进阶之路五:嵌入式驱动方式点亮LED
    嵌入式linux与物联网进阶之路四:嵌入式驱动开发思路
    嵌入式linux与物联网进阶之路三:根文件系统制作
    嵌入式linux与物联网进阶之路二:Linux内核编译
    嵌入式linux与物联网进阶之路一:U-Boot移植
  • 原文地址:https://www.cnblogs.com/bjphp/p/8486560.html
Copyright © 2020-2023  润新知