您的位置:首页 > 运维架构 > 网站架构

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

2018-01-03 22:54 211 查看
优化核心:

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

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

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

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


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

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

④ 设置缓存(redis memcache mongoDb)

B:从底层来说

选取合适的数据库引擎(myisam 和 innodb(注意他们的区别));

选取合适的字段(原则:能用小的不用大的,选取小的空间,选取运行速度快的,能选取定长的不选取变长的);尽量将一些数据转化成整型进行存储,如ip和时间

建立适当的索引,提高查询效率(索引:类似查询目录,对数据表的一类或者多列进行排序的结构,该结构支持一定的算法,可以快速的查询数据,分为主键、唯一索引、普通索引、全文索引。);

注意:

①索引使用的场景

where 条件里面涉及到的字段、order条件里面涉及到的字段。字段的值足够多样化,尽量不要重复(比如性别就不能建立索引);

索引的使用原则:用explain查询计划

a. 左原则 : like查询的时候,左边尽量不能使用%;

b. or原则 :使用or的时候,两边的字段必须是索引字段,才能使用索引,否则失效;

c.复合索引的时候,必须使用复合索引的第一个索引字段才有效 key(name,password);

d.如果mysql估计全表扫描比使用索引查询效率高时,就不要使用索引;

②myisam和innodb的区别:

事务:myisam不支持事务,innodb支持事务

myisam支持压缩机制

存储文件: myisam存储文件分为:结构文件,数据文件,索引文件;innodb存储文件:结构文件、数据/索引文件;

并发性: myisam并发性较差,因为myisam使用的是表锁机制,当对表操作的时候,会将整个表锁住,但是读写速度快;Innodb并发性好,因为采用的是行锁机制,当操作数据时,智慧锁住当前的某一条记录,但是读写速度相对慢;

Myisam不会根据主键大小进行排序,Innodb会根据主键的大小进行排序

C: sql 语句层

开启mysql的查询缓存

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

开启慢查询日志

D:设计层

如果数据足够大,可以考虑物理谁给你的分表和虚拟化分区;

分区是两者之中比较好的方法,通过range、list、hash、key分区,把一张表分成多个区域,提高查询效率,但实际上还是一张表;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息