zoukankan      html  css  js  c++  java
  • mysql数据类型优化

    定义合适的数据类型对Mysql性能提升非常重要

    1. IPV4地址的存储:IPV4地址,例如:127.0.0.1  =  10000000 00000000 00000000 00000001,实际上是一个32位的无符号整数,用小数点分隔开方便阅读,并不是字符串,所以存储时,应该使用unsigned int来存储。显示的时候用INET_ATON来转换成ip格式,更新或插入时使用INET_NTOA转换成整数插入。
    2. 时间的存储:很多人喜欢用INT来存储时间,实际上,这并不能带来任何性能上的提交;使用内置的DATETIME和TIMESTAMP更方便,因为Mysql内置的很多时间函数可以对时间进行处理。一般情况下,我们都尽量使用TIMESTAMP来存储时间,因为它只占用4个字节,而DATETIME占用8个字节,TIMESTAMP时间到2038年,足够用了。关于时间的比较应该使用整数的比较方式,例如下面两个SQL的执行效率,对于千万行的数据处理差距是巨大的。
      -- 取前一天的数据
      -- 高效的执行
      SELECT 
          *
      FROM
          room_match.view_shouji
      where
          writetime between 
      now() - INTERVAL 1 day  
      and now();
      
      -- 低效的比较
      SELECT 
          *
      FROM
          room_match.view_shouji
      where date(writetime) = "2013-12-15"
    3. 对确定类型的列使用ENUM,ENUM是表面显示为字符串,实际存储为整数的类型,使用 enum列名+0可以查看存储的整数值。使用性别,国家等固定的值可以使用。
  • 相关阅读:
    PAT乙级-1037. 在霍格沃茨找零钱(20)
    PAT乙级-1041. 考试座位号(15)
    PAT乙级-1047. 编程团体赛(20)
    css3 实现 背景图片显示
    块级元素与行内元素(内联元素)的区别和联系
    JS变量
    导航条菜单的制作 滑动缓慢
    HTML中Id和Name的区别
    全面理解Javascript中Function对象的属性和方法
    理解盒子模型
  • 原文地址:https://www.cnblogs.com/trying/p/3475883.html
Copyright © 2011-2022 走看看