一、选择合适的数据类型
    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把数据存到不同的表中

mysql性能优化学习笔记(5)数据库结构优化的更多相关文章

  1. mysql性能优化学习笔记(1)优化目的、方向及数据库准备

    前言: 最近参加面试,问到了很多关于mysql的优化方面的问题,回答的不是很好,也是因为原先做的项目流量不是很大,所以对mysql优化不是太了解,所以趁着周末,恶补一下. 本文来源于慕课网sqlerc ...

  2. mysql性能优化学习笔记-参数介绍及优化建议

    MySQL服务器参数介绍 mysql参数介绍(客户端中执行),尽量只修改session级别的参数. 全局参数(新连接的session才会生效,原有已经连接的session不生效) set global ...

  3. MySQL 5.6学习笔记(数据库基本操作,查看和修改表的存储引擎)

    1. 数据库基本操作 1.1  查看数据库 查看数据库列表: mysql> show databases; +--------------------+ | Database | +------ ...

  4. Mysql数据库学习笔记之数据库索引(index)

    什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...

  5. MYSQL 数据库结构优化

    数据库结构优化 优化数据大小 使表占用尽量少的磁盘空间.减少磁盘I/O次数及读取数据量是提升性能的基础原则.表越小,数据读写处理时则需要更少的内存,同时,小表的索引占用也相对小,索引处理也更加快速. ...

  6. MySQL系列(三)--数据库结构优化

    良好的数据库逻辑设计和物理设计是数据库高性能的基础,所以对于数据库结构优化是很有必要的 数据库结构优化目的: 1.减少数据的冗余 2.尽量避免在数据插入.删除和更新异常 例如:有一张设计不得当的学生选 ...

  7. 《打造扛得住的MySQL数据库架构》第4章 MySQL数据库结构优化

    4-1 数据库结构优化介绍 良好的数据库逻辑设计和物理设计是数据库获得高性能的基础. 1.减少不必要的数据冗余. 2.尽量避免数据维护中出现更新,插入和删除异常. 插入异常:如果表中的某个实体随着另一 ...

  8. Pandas 性能优化 学习笔记

    摘要 本文介绍了使用 Pandas 进行数据挖掘时常用的加速技巧. 实验环境 import numpy as np import pandas as pd print(np.__version__) ...

  9. MongoDB学习笔记:MongoDB 数据库的命名、设计规范

    MongoDB学习笔记:MongoDB 数据库的命名.设计规范     第一部分,我们先说命名规范. 文档 设计约束 UTF-8 字符 不能包含 \0 字符(空字符),这个字符标识建的结尾 . 和 $ ...

  10. MYSQL视图的学习笔记

    MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具   1.       视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...

随机推荐

  1. 用canvas绘制一个时钟

    实现一个时钟的绘制和时间的显示 一,首先是页面的搭建html部分以及一点点的css代码,因为css这块用的比较少,所以就没有单独出来: <!DOCTYPE html> <html l ...

  2. phonegap退出android程序

    最近用android做了一个程序,在点“后退”的时候,会不停地后退,感觉不好. 查了些资料有这么些: 一.toast_plugin插件 <script type="text/javas ...

  3. javascript模拟html title

    这只是个学习原生javascript过程中的一个练手效果 不做说明解释 直接上代码 算是个参考 <!doctype html> <html> <head> < ...

  4. Composer的使用

    安装 curl -sS https://getcomposer.org/installer | php 你可以使用--install-dir选项将Composer安装到指定的目录,例如: curl - ...

  5. Ajax XMLHttpRequest对象的三个属性以及open和send方法

    (1)onreadystatechange 属性onreadystatechange 属性存有处理服务器响应的函数.下面的代码定义一个空的函数,可同时对 onreadystatechange 属性进行 ...

  6. python列表推导和字典推导

    代码如下: list = ['aaa','bbb','ccc','ddd'] dict = {key:value for value,key in enumerate(list)} print(dic ...

  7. 1.C语言关键字(auto break case char const swtich)

    ANSI C标准C语言共有32个关键字,分别为: auto break case char const continue default do double else enum extern floa ...

  8. MVC4 Win2008 aspnet_isapi配置问题

    win2008下配置共2步 1.先确保你的应该程序池选择了asp.net 4.0框架 2.添加脚本映射(解决URL不能重写) 3.添加通配符脚本映射(解决图片不能显示) IIS中的Web应用程序有两种 ...

  9. Oracle EBS-SQL (OM-5):检查订单事务处理类型.sql

    SELECT            HO.NAME OU                                                                         ...

  10. Office OpenXML-Excel(一)

    原文 http://www.cnblogs.com/changminglong/articles/2840004.html 适用于 2007 Microsoft Office 套件,Microsoft ...