zoukankan      html  css  js  c++  java
  • mysql 优化学习笔记

    笔记传智播客韩顺平老师mysql优化视频课程:

    A、表的设计(3范式)

    符合一范式,才能满足二范式,进一步满足三范式

    关系性数据库:oracle/mysql/db2/informix/sysbase/sql server

    非关系型数据库:(特点:面向对象和集合)

    Nosql数据库:mongodb(特点是面向文档,介于关系和非关系型数据库) 

    一范式  表的列不能再分割,信息本身可以明确表示某个信息。(关系性数据库自动满足)如:

     二范式:表中的数据唯一,不重复,(只要设置主键就可以满足,一般不含业务逻辑,自增长)

     三范式:表中无冗余数据,如可以推导出来,就无需添加字段存放。

    比如: 个人资料    个人班级  ,个人资料里面有姓名字段就无需再个人班级里面添加姓名字段。

    注意:不一定要完全满足三范式,具体情况讨论,多在一对多情况,比如 某相册全部浏览量,不是每次调用都去查询叠加一次每张相片浏览量,在相册添加一个浏览量字段就好

    B、sql语句优化

    1.mysql数据库运行状态如何查询(如何查询用了多少时间、次数、连接)控制台

    Show satus; 可以查看所有查询状态

    Show status like ‘uptime’

    Show status like ‘com_select’ ;

    Show[session|global] status like ...如果不写[session|global],默认是session会话,mysql启用到现在用 global

    2.慢查询(mysql默认是10s

    查询慢查询时间:show variables like ‘long_query_time’;

    修改慢查询时间:set long_query_time=1;

    (跳过04.05视频慢查询)

    C、添加适当索引(index

    数据库 mysql/mysql server5.5/data/temp  有些表有一个文件,一些有三个文件

    Admin.frm(结构)  admin.myd(数据)  admin.myi(索引)

    原理:从数据库读取数据 select * from article where id=500; 数据库服务器会遍历表单内索引数据返回多条数据。。

    添加索引后是按二叉树算法进行。。。进行次数c和总检索数目n关系是 log2 n = c

     普通

     主键

     唯一(unique

     全文(如百度)

     复合

    D、分表(水平分割、垂直分割)

    E、读写分离(读分到多个操作,写update/delete/add

    F、存储过程

    数据库(oraclemysqldb2)三次结构[模块化编程、可以提高速度]

     

    php程序     数据库管理系统 (编译、执行、缓存)    数据库

    通常是 php程序传递到 数据库管理系统,系统编译-执行-缓存,从数据库读取数据返回给php,但php程序可以直接从数据库管理系统读取编译好的数据。

    G、mysql配置优化【配置最大并发数,调整缓存大小】

    My.ini-- max_connection

    H、服务器硬件升级

    I、定时清除不需要数据,定时进行碎片整理【myisam尤其注重】

  • 相关阅读:
    Integer to Roman leetcode java
    Reverse Integer leetcode java
    Binary Tree Maximum Path Sum leetcode java
    公司来了一个奇葩需求pppoe client+server+EOIP+vlan
    魔兽数据库-自然
    windows默认dns解析走ipv4而不走ipv6
    ROS支持BCP桥接(基于PPP隧道)
    几款比较好用的电动理发器推荐
    centos 拨号pptp在拨号成功和拨号失败的时候脚本处理!!!非常重要
    ros routeros 脚本命令script
  • 原文地址:https://www.cnblogs.com/lola/p/8030384.html
Copyright © 2011-2022 走看看