• mysql性能优化学习笔记(5)数据库结构优化



    一、选择合适的数据类型
        1.使用可存下数据的最小的数据类型
        2.使用简单地数据类型,Int<varchar
        3.尽可能使用not null定义字段
        4.尽量少用text,非用不可最好分表
        用Int存储日期时间
        from_unixtime()可将Int类型的时间戳转换为时间格式
        unix_timestamp()可将时间格式转换为Int类型
        存储IP地址——bigInt
        利用inet_aton(),inet_ntoa()转换


    二、范式设计
        一般需要遵循第三范式的要求
        数据表结构优化 第三范式:要求数据库中不存在非关键字段对任意候选关键字的传递函数依赖
        不符合第三范式要求的表存在以下问题:
        1.数据冗余:(分类、分类描述)对于每一个商品都会进行记录
        2.数据插入异常
        3.数据更新异常
        4.数据删除异常
        反范式化
        为了查询效率的考虑把原本符合第三范式的表适当增加冗余,以空间换取时间


    三、表的拆分
        垂直拆分
        把原来有很多列的表拆分成多个表,原则是:
        1.把不常用的字段单独存放到一个表中
        2.把大字段独立存放在一个表中
        3.把经常使用的字段放在一起


        水平拆分
        1.对customer_id进行hash运算,如果是要拆分成5个表的话,则使用mod(customer_id,5)
        2.针对不同的hashID把数据存到不同的表中

  • 相关阅读:
    使脱排油烟机能够听懂你的话(超级简单的方法)
    解决手机无法连接【小米AI音箱】播放音乐问题
    相机稳定器使用注意点
    Scrapy基本命令
    Linux环境下的Scala环境搭建
    Linux基本操作
    MySQL常用操作
    PySpark笔记
    Linux环境下配置及启动Hadoop(伪集群)
    idea: unable to import maven project
  • 原文地址:https://www.cnblogs.com/haodaquan/p/4986578.html
Copyright © 2020-2023  润新知