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可以查看存储的整数值。使用性别,国家等固定的值可以使用。
  • 相关阅读:
    深入浅出进程与线程的基本概念
    python中with的用法
    浮点型数据在内存中存储的表示
    自问问题列表以及网络答案整理
    看java源代码
    【设计模式】工厂方法
    SQL实现递归及存储过程中 In() 参数传递解决方案
    app与server联系
    添加service到SystemService硬件服务
    noproguard.classes-with-local.dex
  • 原文地址:https://www.cnblogs.com/trying/p/3475883.html
Copyright © 2011-2022 走看看