为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
性能优化之MySQL优化_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

性能优化之MySQL优化

sqlercn 数据库工程师
难度中级
时长 2小时 0分
  • 表的水平拆分是为了解决单表的数据量过大的问题,水平拆分的表,表的表结构都是完全一致的

    查看全部
  • 数据库的优化

      1.选择合适的数据类型

      2.反第三范式优化

      3.表的垂直拆分

      4.表的水平拆分


    表垂直拆分:就是把原来一个有很多列的表拆分成多个表,这解决了表的宽度问题。垂直拆分原则:

     1.不经常用得放在同一个表中

     2.经常用得放在同一个表中

     3.大的字段单独放在一个表中


    查看全部
  • 反范式化:为了查询效率的考虑,把原本符合第三范式的表适当增加冗余,以达到优化查询效率的目的。以空间换取时间的操作。

    查看全部
  • 表的反范式化

    查看全部
  • 表的范式化——分表

    查看全部
  • 表的范式化即数据库设计的规范化:数据表不存在非关键字段对任意关键字段的传递函数依赖,则符合第三范式。

    可以将一张数据表进行拆分,来满足第三范式的要求。

    设计表的时候符合范式化是为了:减少数据冗余、减少表的插入、更新、删除异常

    设计表的时候使用反范式化是为了:以空间换时间、增强代码的可编程性和可维护性

    不符合第三范式要求的表存在以下问题:

    1.数据冗余:(分类、分类描述)对于每一个商品都会进行记录

    2.数据插入异常

    3.数据更新异常

    4.数据删除异常


    查看全部
  • 使用INET_ATON()函数和INET_NTOA()函数来转换ip地址

    https://img1.sycdn.imooc.com//5c14e1590001bc0110850361.jpg

    查看全部
  • 选择合适的数据类型

    https://img1.sycdn.imooc.com//5c14e0490001ac3e11510348.jpg

    查看全部
  • 选择合适的数据类型

    1.使用可存下数据的最小的数据类型

    2.使用简单地数据类型,Int<varchar

    3.尽可能使用not null定义字段

    4.尽量少用text,非用不可最好分表


    mysql里:

    from_unixtime(int_time)函数可以将int类型的时间戳转为日期时间格式 

    unix_timestamp('2014-06-01 13:12:30')函数可以将日期时间格式转为int类型


    INET_ATON  在插入数据的时候将IP地址转换成 int 类型

    INET_NTOA() 在查询的时候将BIGINT类型转换成IP形式


    查看全部
  • SQL及索引优化 

    索引的维护及优化---删除不用索引   

    目前MySQL中还没有记录索引的使用情况,但是在PerconMySQL和MariaDB中可以通过INDEX_STATISTICS表来查看那些索引未使用,但在MySQL中目前只能通过慢查日志配合pt-index-usage工具来进行索引使用情况的分析。


    查看全部
  • 索引的维护及优化---查找重复及冗余索引

    查看全部
  • 索引的维护及优化

    查看全部
  • 冗余 索引

    查看全部
  • 索引的优点:

    1、提高查询的效率:select

    索引的缺点:

    1、降低写入的效率:insert、update、delete


    索引存在的目的是为了加快查询的效率,不过不是索引越多越好,建立索引要适当才好。

    过多的索引会增加数据库判断使用什么索引来查询的开销,所以,有时候也会出现以去掉重复或者无效的索引为优化手段的优化方式。


    错误索引的结果:

    降低所有操作的效率。


    错误索引列表:

    1、重复索引

    查询的时候,如果加载重复索引越多,速度越慢。错误示范:

    create table user(

        id int not null primary key,

        username varchar(10) not null,

        address varchar(50) not null,

        unique(id)

    ) engine=innodb;


    2、冗余索引

    Innodb 中,每个索引都会自动添加上主键,所以索引不用添加主键。错误示范:

    create table user(

        id int not null primary key,

        username varchar(10) not null,

        address varchar(50) not null,

        key(name, id)

    ) engine=innodb;


    查看全部
  • 如何判断一个表的离散度?

    1. 查看表的数据结构信息 desc 表名;

    2. 判断某一列的离散度:select count(distinct 字段名)from 表名;返回的结果值越大,说明离散度越大,建立联合索引时,应该放到前面;


    查看全部

举报

0/150
提交
取消
课程须知
想要学好这门课程,你需要具备MySQL数据库的基本知识,如果具有相关的工作经验并且希望能提升工作技能的话,这门课程就再适合不过了。
老师告诉你能学到什么?
1、了解数据库优化的各个方面的方法和技巧 2、如何对SQL语句和索引进行优化 3、如何对数据库结构及运行环境进行优化
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!