Mysql基本使用原理和索引类型

1.创建用户

创建用户的三种方法

(1)insert into mysql.user(Host,User,Password)  values('localhost','hadoop',password('hadoop'));

(2)CREATE USER 'hadoop'@'localhost' IDENTIFIED BY 'hadoop'


2.给用户赋予可以访问某个DB的权限

--赋予 查询,插入,删除,更新的权限

GRANT SELECT,INSERT,DELETE,UPDATE ON sparkDB.* TO 'hadoop'@'%' IDENTIFIED BY "hadoop"

--赋予管理员的权限

grant all privileges on *.* to hadoop@localhost identified by "hadoop" WITH GRANT OPTION ;

//赋予所有的权限

grant all privileges  ON sparkDB.* TO 'hadoop'@'%' IDENTIFIED BY "hadoop";


3.主键约束问题

(1).unique key要求列唯一,但不包括null字段,也就是约束的列可以为空且仅要求列中的值除null之外不重复即可;

(2).primary key也要求列唯一,同时又限制字段的值不能为null,相当于Primary Key=unique + not null。 

创建一个primary key和unique key都会相应的创建一个unique index。


4.mysql 中coalesce相比nvl优点是,coalesce中参数可以有多个,而nvl()中参数就只有两个。


5.改变字段长度

altertable tbl_content_shop_infmodifycolumn shop_descvarchar(1024);


6. 导出表结构和数据

mysqldump -uhadoop -phadoop -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --tables hadoopDB brand> brand.sql


7.导出某个库的所以表结构(不包含数据)

mysqldump -h localhost -uhadoop -phadoop  -d sparkDB > dump.sql


8.dump文件只导出数据

mysqldump -uhadoop -phadoop -h127.0.0.1 -P3306 -t hadoopDB test> test.sql


Mysql 索引

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。

索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。

索引的缺点:

   1.虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件

    2.建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。

索引的优缺点?
优点:
1.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 
2.可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 
3.可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 
4.在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 
5.通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

缺点:
1.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。 
2.索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚集索引那么需要的空间就会更大。 
3.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。


4.Mysql设置不区分大小写

原来Linux下的MySQL默认是区分表名大小写的,通过如下设置,可以让MySQL不区分表名大小写:
(1)用root登录,修改 /etc/my.cnf;
(2)在[mysqld]节点下,加入一行: lower_case_table_names=1
(3)重启MySQL即可;

其中 lower_case_table_names=1 参数缺省地在 Windows 中这个选项为 1 ,在 Unix 中为 0,因此在window中不会遇到的问题,一旦一直到linux就会出问题的原因



索引类型:

表中的聚簇索引(clustered index )就是一级索引,除此之外,表上的其他非聚簇索引都是二级索引,又叫辅助索引(secondary indexes)。

https://dev.mysql.com/doc/refman/8.0/en/innodb-index-types.html



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值