mysql优化记录笔记

一.mysql版本:
1. 5.4-5.x整合三方公司的新存储引擎
2. rpm版本
二.逻辑分层:
1.客户端
2.服务端
  a.连接层,
  b.服务层(优化器)
  c.引擎层,提供了各种存储数据的方式(innoDb MYisam)
    innoDB:事件优先(适合高并发;行锁)
    MyISAM:性能优先(表锁)
  d.存储层
三.SQL优化: 
   原因:性能低,执行时间长,SQL语句欠佳(连接查询),索引失效,服务器参数设置不合理(缓冲,线程数)
    a. sql: 编写过程 
            解析过程
    b.优化:索引相当于书的目录
    索引:(索引是数据结构,是B树(Mysql默认是B树),Hash树)
    索引弊端:
    1.索引本身很大,可以放在内存,硬盘中
    2.不是所有情况均适用:少量数据; 频繁更新的字段;很少使用的字段
    3.会降低增删改的效率
    优势:提交查询效率(降低IO使用率);降低CPU使用率(order by age desc,B树已经排好序了)

 

一.数据库设计:
  主要是表设计,符合3范式(原子性,唯一约束,数据不要冗余),如果要冗余数据,在一对多的情况下,尽量把冗余的数据放在一的那边
  逆范式,有时候数据库设计的时候有必要进行降低范式(如里两个表,一张是相册表,一张是具体相册表里的图片表,如果要统计相册表中哪个相册点击的数量和哪张图片表点击的数量,就需要分别用到两个字段,适当冗余,如果在图片表直接统计,会造成查询图片特别慢,因为图片表数据量比相册表数据量大很多)
 
二.sql语句优化:1.sql语句有几类:a)ddl数据定义语句(create,alter,drop) b)dml数据操纵语句(insert,delete,update) c)select d)dtl数据事务语句(commit,rollback,savepoing) e)dcl数据控制语句:grant,revoke
               2.show status命令:该命令可以显示mysql数据库当前的状态,主要关心的是以com开头的指令
           3.show status like "Com%"; <=> show session status like "Com%" 显示当前打开会话时的数据库状态,即打开命令窗口时到后的这段时间
           4.show global status like "Com%" 显示数据库从启动到查询的数据库状态
           5.show status like ‘Connections’ 显示连接数据库次数
           6.show status like 'uptime' 显示服务器的工作时间(单位秒) 
           7.show status like 'Slow_queries' 慢查询的次数(默认是10秒,可以修改) mysql5.5.19
           8.显示查看慢查询的情况:show variables like 'long_query_time'
           9.创建自定义函数:
           delimiter $$ :表示sql语句结束符号改成$$,默认是;
           drop function rand_string$$,删除自定义函数
           生成一段随机的字符函数:
           create function rand_string(n INT)
           returns varchar(255)
           begin
           declare chars_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
           declare i int default 0;
           while i<n do 
           set return str = contcat(return_str.substring(clar_str.floor(l+ran)*52).1))
           set i=i+1;
           end while;
           return return_str
           end $$

          10.

      11.

     12

 上面的的载图地方,Handler_read_key是越大越好,不是越大越少

3.配置(增加内存空间)


4.增加系统配置

三,MyISAM和InnoDB存储引擎

 

四,分表:水平分割和垂直分割

水平分割:

垂直分表:1.把大的数据字段单独放一张表,这样在查询小数据的字段时,可以提高查询效率。

                  2.减少数据冗余。

 

五. 读写分离

1.缓解查询压力

2. amoeba [əˈmiːbə ] 服务器(新浪提供的)判别是dml语句还是查询语句,如果是dml就去master mysql主数据库,然后用mysql proxy技术,让master mysql主数据同步到slave服务器,如果是查询语句就直接去slave,amoeba服务会根据当前的负载情况来选择不同的slave服务器,把查询结果返回.

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流学习。 【注意】 项目下载解压后,项目名字和项目路径不要用中文,否则可能会出现解析不了的错误,建议解压重命名为英文名字后再运行!有问题私信沟通,祝顺利! 基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值