zoukankan      html  css  js  c++  java
  • 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把数据存到不同的表中

  • 相关阅读:
    PHP 实现无限极栏目分类
    CI 中css样式或者js样式加载不进来的情况
    php 写model层
    Struts1 中$ 没有解析的问题
    App设计相关网站
    如何知道 win10 的激活到期时间和期限等
    dev XtraMessageBox按钮显示中文
    静电的ui教程
    从零开始做UI-静电的sketch设计教室 视频教程
    SQL Server2005作业执行失败的解决办法
  • 原文地址:https://www.cnblogs.com/haodaquan/p/4986578.html
Copyright © 2011-2022 走看看