MySQL資料庫分割槽

2021-09-24 06:56:06 字數 2858 閱讀 7697

資料庫分割槽處理

如果一張表的資料量太大的話,myd、myi就會變得很大,查詢資料就會變的很慢,我接觸到的是有關溫州計程車網約車gps資料量的查詢,大概資料量為1天4000萬條記錄,不分割槽查詢速度慢到懷疑人生。在物理上我們可以把資料表分割成不同的小塊,查詢資料只需要查詢需要的那一塊資料即可,查詢速度大大提公升。

我們專案中我只用到了rang分割槽:

參考mysql分割槽

range分割槽

自動分割槽

create table cb03_cbrfid(

zwmc varchar2(50),

dtid varchar2(50),

rfid varchar2(50),

cbsbh varchar2(50),

cblx varchar2(50),

num number(10),

zdw varchar2(50) ,

sj date ,

zzz varchar2(50) ,

zzxcg varchar2(50),

jd number(19,16),

wd number(19,16),

wz varchar2(50),

reserved1 float(8),

reserved2 float(8),

xxlx integer ,

gxsj date )

partition by range(gxsj)

interval(numtodsinterval(1,'day'))

( partition cbrfid1 values less than(to_date('2017-10-15 00:00:00','yyyy-mm-dd hh24:mi:ss')));複製**

具體的操作:

partition by range (欄位名)

( partition 分割槽名 values less than (to_date(' 2014-07-25 00:00:00', 'syyyy-mm-dd hh24:mi:ss', 'nls_calendar=gregorian'))

);複製**

手動分割槽

alter table 表名 add partition 分割槽名 values less than (to_date(' 2014-07-27 00:00:00, 'syyyy-mm-dd hh24:mi:ss'))

複製**

最後分割槽示例:

create table t_wyc_gps_history

( vehicle_no varchar2(20),

vehicle_color varchar2(8),

alarm_id varchar2(32),

status varchar2(32),

lat varchar2(32),

lon varchar2(32),

speed varchar2(16),

direction varchar2(8),

geometry mdsys.sdo_geometry,

load_time date,

pre_geohash varchar2(20),

last_geohash varchar2(20),

platform_id integer

)partition by range (load_time)

( partition t_wyc_gps_history_20180226 values less than (to_date(' 2018-02-27 00:00:00', 'syyyy-mm-dd hh24:mi:ss', 'nls_calendar=gregorian'))

tablespace wzyg_wyc_gps

pctfree 10

initrans 1

maxtrans 255

storage

(initial 8m

next 1m

minextents 1

maxextents unlimited

),partition t_wyc_gps_history_20180227 values less than (to_date(' 2018-02-28 00:00:00', 'syyyy-mm-dd hh24:mi:ss', 'nls_calendar=gregorian'))

tablespace users

pctfree 10

initrans 1

maxtrans 255

storage

(initial 8m

next 1m

minextents 1

maxextents unlimited

),partition t_wyc_gps_history_20180228 values less than (to_date(' 2018-03-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss', 'nls_calendar=gregorian'))

tablespace users

pctfree 10

initrans 1

maxtrans 255

storage

(initial 8m

next 1m

minextents 1

maxextents unlimited

),複製**

mysql 資料庫表分割槽

create table if not exists demo range eventid int 11 unsigned not null,event sk int 11 not null,product sk int 11 not null,date sk int 11 not null,dev...

mysql資料庫 資料分割槽的型別

mysql資料庫 資料分割槽的型別 range分割槽 基於屬於乙個給定連續區間的列值,把多行分配給分割槽。mysql5.5之前的版本只接收int型別的引數 舉例如下 create table employees id int not null,fname varchar 30 lname varch...

MySQL資料庫資料分割槽實踐總結

針對專案現有資料庫進行資料分割槽可用的方式及其利弊 1 range方式分割槽 partition by range id partition pt1 values less than 10 comment host 127.0.0.1 port 6001 engine spider,partitio...