加入收藏 | 设为首页 | 会员中心 | 我要投稿 52站长网 (https://www.52zhanzhang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql怎样为表格定义索引(Mysql实用命令建表分区)

发布时间:2023-01-13 15:32:12 所属栏目:MySql教程 来源:未知
导读: mysql怎样为表格定义索引?1、创建表通用sqlCREATE TABLE `ext_base_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`description` varchar(200) DEFAULT NULL

mysql怎样为表格定义索引?1、创建表通用sqlCREATE TABLE `ext_base_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`description` varchar(200) DEFAULT NULL COMMENT '字段表述', `update_by` varchar(200) DEFAULT NULL COMMENT '更新者', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE) COMMENT='通用表';MySQL 索引,接下来我们就来聊聊关于mysql怎样为表格定义索引?以下内容大家不妨参考一二希望能帮到您!

mysql怎样为表格定义索引(Mysql实用命令建表分区)

mysql怎样为表格定义索引

1、创建表通用sql

CREATE TABLE `ext_base_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`description` varchar(200) DEFAULT NULL COMMENT '字段表述', `update_by` varchar(200) DEFAULT NULL COMMENT '更新者', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE) COMMENT='通用表';

对于数据量比较大的,可以添加索引和分区

添加普通索引:

aLTER TABLE `ext_moneybase_daily` ADD INDEX index2 ( trade_date )

添加联合索引

aLTER TABLE `ext_moneybase_daily` ADD INDEX index3 ( ts_code,trade_date )

用数字的列添加Hash索引

ALTER TABLE ext_moneybase_daily PARTITION BY HASH (id) PARTITIONS 100 ;

MySQL 索引_mysql 添加索引命令_mysql索引和聚合索引

#查看分区

SELECT

partition_name part,

partition_expression expr,

partition_description descr,

table_rows

FROM information_schema.partitions WHERE

table_schema = SCHEMA()

AND table_name='ext_moneybase_daily';

通过查询条件并删除

select 和 in 不能直接使用,需要外面包一个壳,demo如下:

delete from ext_moneybase_daily where trade_date in (

SELECT MAX(a.cal_date) AS trade_date FROM (

select cal_date from ext_moneybase_trade_cal s1

left join(

select trade_date,count(*) dcount from ext_moneybase_daily group by trade_date

) s2 on s1.cal_date=s2.trade_date

where s1.amount!=s2.dcount

) AS a GROUP BY a.cal_date

)

更新数据demo

update ext_moneybase_trade_cal set isdo='2' where isdo='1' and cal_date not in(

select distinct trade_date from ext_moneybase_daily

)

,

(编辑:52站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!