mysql索引视图触发器
来源:互联网 发布:网络的利与弊作文800字 编辑:程序博客网 时间:2024/06/05 09:57
这段时间开会讨论数据访问时间优化的瓶颈和方案,邮件访问操作还是有点慢尽可能再优化,我们组新来的大牛测试和mysql之间的数据交互时间长可以继续优化,猜测当初的mysql设计貌似只考虑了前端开发方便而忽略了后台的性能,这里提到了些mysql的 索引设计、视图、触发器 听得我值犯迷糊 今天把这些东西补一补 以后就可以听懂了:
索引的设计和应用:
为test表创建一个4字节的前缀索引:create index indexname on test (name(4));
测试查询:
explain select * from test where username="lyy" \G;
删除索引:
drop index indexname on test;
索引建立是在select后面的where条件列,且重复值越小(基数越大)索引效果越好,最好是建立短索引(前缀/后缀n个字节),不要建立过多索引会影响:索引结构更新 mysql优化 读写 磁盘占用。
hash索引:只适用于=或者>= 、<=操作符的比较
btree索引:<、>、<=、>=、<>、!=、 between 或者like 'pattern'(正则匹配)
索引查询:
适合btree和hash
select * from test where mid=1 or mid in (10,18,25);
只适合btree
select * from test where mid>1 and mid<10;
select * from test where mid like 'ab%' or mid between 'lisa' and 'simon';
视图:
过滤好的复合条件的结果集。
创建:(聚合、常量、子函数试图是不能更新的)
> create or replace view view_name as
>select test.name, test.password, test1.sal from test,test1 where test.name=test1.name;
with()check option限定条件:
(1)双层视图
> create or replace view ivew_name as
> select name,passwd from test where id < 10 with check option;
(2)
> create or replace view view_name1 as
> select name,passwd from view_name where id < 5 with local check option;
(3)
> create or repalce view view_name2 as
> select name,passwd from view_name where id < 5 with caseaded check option;
update view_name1 set id = 10 where id=3; //成功 with local check option只要满足本视图条件即可
update view_name2 set id=10 where id =3; //失败 with caseaded check option 要满足所有相关视图才行
删除:
drop view view_name;
查看视图详细信息:
show table status like 'view_name' \G;
show create view view_name \G;
触发器:
创建触发器:
create trigger trigger_name trigger_time trigger_event on tbl_name for each row trigger_stml:
trigger_time:after和befor
trigger_event:触发事件 insert update delete
delimiter $$
create trigger trigger_name after insert on test for each row begin insert into trig_test (name,passwd, sal) values(new.name, new.passwd, 1new.sal);
end ;
$$
delimiter;
数据插入test时候也会像trig_test插入一条;
对于触发器来说:如果源数据是insert 触发器表中如果有该数据则执行更新update操作,如果没有直接插入; 如果设定了after insert、before insert、after update、befor update 则:如果数据源insert 触发器表中如果有该数据则执行更新update操作(before insert --> before update --> after update 这样一个过程),如果没有直接插入(befor insert-->after insert) 设置触发器时候应注意 他是按照 before触发器-->行操作-->after触发器顺序执行的
删除:
drop trigger trigger_name;
查看状态:
show triggers \G
desc triggers;
select * from triggers where trigger_name='triggername' \G;
- mysql索引视图触发器
- mysql 索引,视图,触发器
- 事务、触发器、视图、索引
- MYSQL数据库的索引、视图、触发器、游标和存储过程
- MYSQL数据库的索引、视图、触发器、游标和存储过程
- mysql索引,视图,游标,触发器,事物,存储过程
- Mysql 聚合函数,内外连接 , 视图 ,索引,触发器, 存储过程
- MYSQL数据库的索引、视图、触发器、游标和存储过程
- 【数据库】5索引、视图、触发器
- mysql事务视图触发器
- mysql视图和触发器
- 《MYSQL入门很简单》学习笔记2——表,索引,视图,触发器
- MySQL优化之表索引、视图、内置函数、预处理、事务处理、存储、触发器
- MySQL——索引 视图 存储过程 触发器 游标 表复制 内置函数 预处理
- MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句
- MYSQL数据库高级应用宝典含实例(索引、视图、触发器、游标和存储过程)
- mysql 存储过程、变量、函数、触发器、游标、视图、查询、索引、事务
- mysql 视图,触发器,存储过程
- 搜索智能感知效果(调用数据库数据)
- 【随手记】Xcode打开Organizer导致no response解决办法
- OpenMax在Android上的实现
- window下memcache 安装及练习命令
- hbase权威指南: store file合并(compaction)
- mysql索引视图触发器
- 分享关于mobile流量平台的干货
- ubuntu设置时区 更新时间 以及 修正CMOS的时间
- [Android] ImageView.ScaleType设置图解
- 如何搞垮Erlang
- Linux内核-循环链表
- DRP项目期间总结
- cocos2d-x 数学函数、常用宏粗整理
- IOS实现本地通知