热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQLDay11(索引dba命令三范式一对一一对多多对多)

索引1、什么是索引索引对应的英语单词为:index索引相当于一本字典的目录,索引的作用是提供程序的检索【查询】效率索引被用来快速找出在一个列上用一特定

索引
1、什么是索引索引对应的英语单词为:index索引相当于一本字典的目录,索引的作用是提供程序的检索【查询】效率索引被用来快速找出在一个列上用一特定值的行,没有索引,MySQL不得不首先以第一条开始,然后读完整个表直到它找出相关的行。表越大,花费时间越多,对于一个有序字段,可以运用二分查找,性能能得到本质上的提高,MYISAM和INNODB都是用B+Tree作为索引结构主键,unique都会默认的添加索引2、主键自动添加索引,所以能够通过主键查询尽量通过主键查询,效率较高。3、索引和表相同,都是一个对象,表是存储在硬盘文件中的,那么索引是表的一部分,索引也是存储在硬盘文件中的。4、在MySQL数据库管理系统中,对表中记录进行检索的时候,通常包括几种检索方式。第一种方式:全表扫描【效率较低】假设有一张表:emp表select * from emp where ename='wang';若ename字段上没有添加索引,那么在通过ename字段过滤数据的时候,ename字段会被全部扫描第二种方式:通过索引进行检索【提高查询效率】5、一张表中有多个字段,每一个字段都是可以添加索引的。6、什么情况适合给表中的某个字段添加索引?该字段数据量庞大该字段很少的DML操作【DML操作很多的话,索引也需要不断的维护,效率反而降低】该字段经常出现在where条件中7、怎么创建索引create index dept_dname_index on dept(dname);create unique index dept_dname_index on dept(dname);//添加unique表示dept表中的dname字段添加一个唯一性约束8、怎么删除索引drop index dept_dname_index on dept;DBA命令
1、新建用户
create user username identified by 'password';
--可以登录但是只可以看见一个库 information_schema2、授权
grant all privileges on dbname.tbname to 'username'@'login ip' identified by 'password' with grant option;
首先用root用户进入mysql,然后键入:grant select,insert,update,delete on *.* to abc@localhost identified by '123';
如果希望该用户能够在任何机器上登录mysql,则将localhost改为'%'3、回收权限
revoke privileges on dbname[.tbname] from username;
revoke all privileges on *.* from abc;修改密码
update user set password = password('111') where user = 'abc';
刷新权限:
flush privileges视图
1、什么是视图视图是一种根据查询(也就是select表达式)定义的数据库对象,用于获取想要看到和使用的局部数据视图有时也被称为“虚拟表”视图可以被用来从常规表(称为“基表”)或其他视图中查询数据相当于从基表中直接获取数据,视图有以下好处访问数据变得简单可被用来对不同用户显示不同的表的内容用来协助适配表的结构以适应前端现有的应用程序视图作用:提高检索效率隐藏表的实现细节【面向视图检索】视图可以隐藏表的细节
mysql是个命令行程序;
mysqld是服务,一般linux系统里的服务都是以d结尾的,比如httpd,vsftpd等等。
d的全拼应该是daemon,也就是守护程序的意思,常驻后台。导出导入
1、导出整个数据库mysqldump database>d:\xxx.sql -uroot -proot2、导出指定库下的指定表mysqldump database emp>d:\xxx.sql -uroot -proot3、导入source d:\xxx.sql数据库设计三范式
1、第一范式要求有主键,并且要求每一个字段原子性不可再分每一行必须唯一,也就是每个表必须有主键,数据库设计的最基本要求。主要通常采用数值型或定长字符串表示。关于列不可再分,应更具具体的情况来决定。如联系方式,为了开放上的便利性可能就采用一个字段2、第二范式要求所有非主键字段完全依赖主键,不能产生部分依赖一般不能用联合主键 因为一般都会出现仅依赖其中一个主键3、第三范式所有非主键字段和主键之间不能产生传递依赖4、几个经典的设计一对一:第一种方案:分两张表存储,共享主键t_husbandhno(pk) hname1 zhang2 li3 liut_wifewhn(pk) wname 【wnoon更是也是fk 引用t_husband的hno】1 a2 b 3 c第二种方案:分两张表存储,外键唯一t_husbandhno(pk) hname wifeno(fk-unique)1 zhang 1002 li 2003 liu 300t_wifewhn(pk) wname100 a200 b 300 c一对多:分两张表存储,在多的一方添加外键,这个外键字段引用一的一方中的主键字段多对多:分三张表存储,在学生表中存储学生信息,在课程表中存储课程信息,在学生课表中存储学生
5、实际开发在实际开发中尽量遵循三范式但是还是根据实际情况进行取舍有时可能拿冗余换速度最终目的是满足客户需求


推荐阅读
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
author-avatar
平凡快乐的girl_819
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有