设为首页 收藏本站
查看: 926|回复: 0

[经验分享] Mysql 视图、索引

[复制链接]

尚未签到

发表于 2018-10-6 09:13:35 | 显示全部楼层 |阅读模式
  一、视图:
  1、视图的定义:视图是物理表的映射结果,物理表变化,视图肯定变化。
  

create view v_name as select 列名(也可以是函数计算出来的结果如 avg()) from 表;  

  2、视图的作用:
  2.1、权限控制
  比如某几列,允许用户查询,其它列不允许。
  可以通过视图开放其中一列或者几列,起到权限控制的作用。
  如商品表中的进货价格、进货商等重要信息,一般用户是不能看到的。
  2.2、简化复杂的查询语句。
  3、视图能否更新、删除、添加?
  如果view的每一行与物理表一一对应,则可以,视图变化物理表变化。
  如果view的行是由物理表多行经过计算得到的结果,view不可以更新的。
  二、delete与truncate的区别:
  1、delete是DML的,只是删除表中的数据。
  2、truncate是DDL的,先删除表,在创建表。
  举例:创建一个列自增长的表,操作一下就一目了然啦....
  三、索引:
  对于提高数据库性能,索引是个物美价廉的方式。不用加内存,不用改程序,不用调sql,只需要正确建立索引,就可以把查询速度提高百倍千倍。不过天下没有免费的午餐,建立索引提高了查询速度,但降低了增、删、改的速度。
  1、索引是数据的目录,能快速定位行数据的位置。
  2、索引提高了查询速度,但是降低了增、删、改的速度(增删改时 索引表也要变更),因此并非索引越多越好。
  3、索引一般建立在查询频率高的列上加,并且加在重复度低的列上效果更好。
  4、索引分类:
  (1)、index|key 普通索引:提高查询速度。
  A、创建表时指定:create table test(id int,key(id));
  B、创建表后添加:alter table 表名 add index(id)或 create index index_name on tableName(列)
  (2)、unique |unique key唯一索引:加快查询速度,并且约束数据不能重复。
  A、创建表时指定:create table test(id int primary key,name varchar(30),email varchar(30) unique);
  或者create table test(id int primary key,name varchar(30),email varchar(30),unique (email));

  B、创建表后添加: >  (3)、primary key主键索引:加快查询速度,并且约束数据不能重复。
  A、创建时指定:
  create table test(id int primary key)
  

B、创建表后添加:  
alter table 表名 add primary key(列)
  

  (4)、fulltext全文索引:
  主要是针对文字的检索,只对MyISAM引擎有效,在InnoDB上无效。并且在中文环境下几乎是无效的,要分词加索引才可以,一般用第三方解决方案,如compass。
  (5)、主键索引和唯一索引的区别:
  主键索引不能为空,不能重复;唯一索引可以为空,不能重复。
  四、常用的语句:
  1、show databases :显示所有数据库;
  2、show create database 数据库名:显示创建数据库的语句。
  3、show create table 表名:显示创建表的语句。
  4、show index from 表名:显示表的索引。
  5、show table status :当前库显示所有表的status;
  6、show table status like 表名:当前库显示某张表的status;
  7、select database():显示当前库名。
  8、select user():显示当前用户。
  9、explain sql语句:显示sql语句的执行状况。
  10、添加/删除索引:
  alter table 表名 add [index|unique] 索引名(列名)
  drop table index 索引名 on 表名
  11、添加/删除主键索引:
  alter table 表名 add  primary key(列名)
  drop table primary key on 表名



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-613520-1-1.html 上篇帖子: 13.4 mysql用户管理13.5 常用sql语句13.6 mysql数据库备份恢复 下篇帖子: 实现MYSQL的主从复制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表