1. 当前位置:网站首页 > Mysql

视图、函数、定时器、索引


视图

相当于连表查询,将多表查询封装入视图中使用

一、创建视图命令
1.基于同一数据库
create  view device_info as (select * from pg_device as a left join pg_target as b on a.id = b.device_pri_id where a.state >= 0) ;
2.基于不同数据库
create view 数据库2.v as (select * from 数据库1.table1) union all (select * from 数据库2.table2);

函数

BEGIN
    SET @TIME_ADD = (SELECT alarm_time FROM pg_data WHERE device_no=device_id and laser_no=laser_id ORDER BY id DESC LIMIT 1);
    SET @M_TIME = (SELECT monitor_time FROM pg_config limit 1);
    SET @TIME_OLD = (select date_sub(@TIME_ADD, INTERVAL @M_TIME HOUR));
    SET @TIME_OLD_ID = (SELECT id FROM pg_data WHERE device_no=device_id and laser_no=laser_id and alarm_time >= @TIME_OLD LIMIT 1);
    SET @TIME_ADD_ID = (SELECT id FROM pg_data WHERE device_no=device_id and laser_no=laser_id ORDER BY id DESC LIMIT 1);

   RETURN CONCAT(@TIME_OLD_ID, '/', @TIME_ADD_ID);
END

定时器

创建一个每5秒往eventtest插入数据的事件定时器
CREATE EVENT IF NOT EXISTS test ON SCHEDULE EVERY 5 SECOND
ON COMPLETION PRESERVE
DO INSERT INTO eventtest(user,createtime)VALUES('MySQL',NOW());

索引

mysql索引创建规则:
1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响;

索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。
因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,
索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,
一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。

创建索引:
PRIMARY KEY(主键索引) 
mysql > ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
UNIQUE(唯一索引) 
mysql > ALTER TABLE `table_name` ADD UNIQUE (`column` )
INDEX(普通索引) 
mysql > ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
FULLTEXT(全文索引) 
mysql > ALTER TABLE `table_name` ADD FULLTEXT ( `column` )

(CREATE INDEX可对表增加普通索引或UNIQUE索引,不能创建PRIMARY KEY索引);
mysql > CREATE INDEX index_name ON table_name (column_list)
mysql > CREATE UNIQUE INDEX index_name ON table_name (column_list)

删除索引:
DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP PRIMARY KEY

查看索引:
mysql> show index from tblname;
mysql> show keys from tblname;

本文最后更新于2021-12-29,已超过 3个月没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
版权说明

本文地址:http://www.liuyangdeboke.cn/?post=16
未标注转载均为本站远程,转载请注明文章出处:

发表评论

联系我们

在线咨询:点击这里给我发消息

微信号:17721538135

工作日:9:00-23:00,节假日休息

扫码关注