什么是Mysql中分范围区

  

通过范围的方式进行分区,为每个分区给出一定的范围,范围必须是连续的并且不能重复,使用值小于操作符& lt; br/祝辞

让我们先来创建一个范围分区的表

 <代码>创建表员工(
  ,,INT id不空,
  ,帧VARCHAR (30),
  ,,lname VARCHAR (30),
  ,,雇用日期NOT NULL默认& # 39;1970 - 01 - 01 & # 39;,
  ,,分离NOT NULL默认日期& # 39;9999 - 12 - 31日& # 39;,
  ,,job_code INT非空,
  ,store_id INT NOT NULL
  )
  分区的范围(可以)(
  ,,分区p0值小于(6),
  ,,分区p1值小于(11),
  ,,分区p2值小于(16),
  ,,分区p3值小于(21)
  ); 

store_id小于6的,会被放入第一个分区,小于11的会放入第二个分区。你们;br>
<代码>如果我的可以大于21日怎么办呢?>

 <代码>创建表员工(
  ,,INT id不空,
  ,帧VARCHAR (30),
  ,,lname VARCHAR (30),
  ,,雇用日期NOT NULL默认& # 39;1970 - 01 - 01 & # 39;,
  ,,分离NOT NULL默认日期& # 39;9999 - 12 - 31日& # 39;,
  ,,job_code INT非空,
  ,store_id INT NOT NULL
  )
  分区的范围(可以)(
  ,,分区p0值小于(6),
  ,,分区p1值小于(11),
  ,,分区p2值小于(16),
  ,,分区p3值小于(21),
  ,,分区p4值小于(执行)
  ); 

增加了一个执行,执行的意思是,大于21日的数据都会放入这个分区,当然,还有另外一种方式去避免这个问题,就是在插入的时候增加忽视关键字。你们,br/祝辞

<代码>分区键类型为时间转时间戳 & lt; br/祝辞
可以使用unix时间戳()

 <代码>创建表quarterly_report_status (
  ,,report_id INT非空,
  ,,report_status VARCHAR(20)非空,
  ,,report_updated时间戳NOT NULL违约CURRENT_TIMESTAMP CURRENT_TIMESTAMP更新
  )
  范围分区(UNIX_TIMESTAMP (report_updated)) (
  ,,分区p0值小于(UNIX_TIMESTAMP(& # 39; 2008-01-01就是# 39;)),
  ,,分区p1值小于(UNIX_TIMESTAMP(& # 39; 2008-04-01就是# 39;)),
  ,,分区p2值小于(UNIX_TIMESTAMP(& # 39; 2008-07-01就是# 39;)),
  ,,分区p3值小于(UNIX_TIMESTAMP(& # 39; 2008-10-01就是# 39;)),
  ,,分区p4值小于(UNIX_TIMESTAMP(& # 39; 2009-01-01就是# 39;)),
  ,,分区p5值小于(UNIX_TIMESTAMP(& # 39; 2009-04-01就是# 39;)),
  ,,分区p6值小于(UNIX_TIMESTAMP(& # 39; 2009-07-01就是# 39;)),
  ,,分区p7值小于(UNIX_TIMESTAMP(& # 39; 2009-10-01就是# 39;)),
  ,,分区p8值小于(UNIX_TIMESTAMP(& # 39; 2010-01-01就是# 39;)),
  ,,分区票数值小于(执行)
  ); 

除了UNIX_TIMESTAMP外,其他涉及到时间戳的表达式都是不被允许的

<代码>基于时间数字的分区>

 <代码> CREATE TABLE成员(
  ,非空,firstname VARCHAR (25),
  ,不是零,lastname VARCHAR (25),
  ,,用户名VARCHAR(16)不是零,
  ,,电子邮件VARCHAR (35),
  ,加入日期非空
  )
  范围分区(年(加入))(
  ,,分区p0值小于(1960),
  ,,分区p1值小于(1970),
  ,,分区p2值小于(1980),
  ,,分区p3值小于(1990),
  ,分区p4值小于MAXVALUE
  ); 

  

什么是Mysql中分范围区