MySQL详谈(一)------基础理论知识

一: 了解


什么是数据库?

普遍观点认为, 数据库是一个长期存储在计算机内的, 有组织的, 有共享的, 统一管理的数据集合.


常用的数据类型有哪些?

整数数据类型, 浮点数数据类型, 精确小数类型, 二进制数据类型, 日期/时间数据类型, 字符串数据类型.


什么是SQL?

对数据库进行查询和修改操作的语言叫做SQL, 全称是: Structured Query Language(结构化查询语句)


MySQL的优势?

1> 速度: 运行速度快

2> 价格: MySQL对多数人用来说是免费的

3> 容易使用: 与其他大型数据库的设置和管理相比, 其复杂程度较低, 易于学习

4> 可移植性: 能够工作在众多不同的系统平台, 例如: Windows, Linux, Unix, Mac OS等.

5> 丰富的接口: 提供了用于C, C++, Eiffel, Java, Python, PHP等语言的API

6> 支持语句查询: MySQL可以利用标准SQL语法和和支持ODBC(开放式数据库连接)的应用程序

7> 安全性和连接性: 十分灵活和安全的权限和密码系统, 允许基于主机的验证. 连接到服务器是, 所有的密码传输均采用加密形式, 从而保证了密码的安全. 并且由于MySQL是网络化的, 因此可以在因特网上的任何地方访问, 提高数据共享的效率.


什么是外键?

外键: 首先是表中的一个字段, 它可以不是本表的主键, 但对应另外一个表的主键. 外键主要作用是保证数据引用的完整性, 定义外键后, 不允许删除在另一个表中具有关联关系的行. 外键的作用是保持数据的一致性, 完整性.


MySQL中主要的存储引擎有哪些?

MyISAM, InnoDB, MEMORY, BOB, FEDERATED等


: 5.5.13版本的MySQL所支持的存储引擎


非空约束的定义?

指字段的值不能为空, 对于使用了非空约束的字段, 如果用户添加数据没有指定值, 数据库系统就会报错


使用唯一性约束的定义?

唯一性约束要求该列唯一, 允许空, 但只能出现一个空值. 唯一约束可以确保一列或者几列不出现重复值


默认约束的定义?

默认约束指定某列的默认值, 如果男性同学较多, 性别就可以默认为'男'. 如果插入一条新的记录时没有为这个字段赋值, 那么系统自动会为这个字段赋值为'男'


怎么删除存在外键关联的数据表?

数据表之间存在外键关联的情况下, 如果直接删除父表, 结果会显示失败. 原因是直接删除, 将破坏表的参照完整性. 如果必要删除, 可以删除与它关联的子表, 在删除父表, 只是这样同时删除了两个表中的数据. 但有的情况下可能要保留子表, 这时如要单独删除附表, 只需将关联表的外键约束条件取消, 然后就可以删除父表.


内连接?

内连接使用比较运算符进行表间某列数据的比较操作, 并列出这些表中与连接条件相匹配的数据行, 组合成新的记录, 在内连接查询中, 只有满足条件的记录才能出现在结果关系中.


外连接?



外连接分为左连接和右连接


何为索引?

索引是一个单独的, 存储在磁盘上的数据库结构, 他们包含着对数据表里所有记录的引用指针, 使用索引可提高数据库中特定数据的查询速度.


索引的优点?

1> 通过创建唯一索引, 可以保证数据库表中每一行数据的唯一性

2> 可以大大加快数据的查询速度, 这也是创建索引的最主要的原因

3> 在实现数据的参考完整性方面, 可以加快表和表之间的原因

4> 在使用分组和排序子句进行数据查询时, 也可以显著减少查询中分组和排序的时间


索引的缺点?

1> 创建索引和维护索引要耗费时间, 并且随着数据量的增加所耗费的时间也会增加

2> 索引需要占用磁盘空间, 除了数据表占数据空间之外, 每一个索引还要占一定的物理空间, 如果有大量的索引, 索引文件可能比数据文件更快达到最大文件尺寸

3> 当对表中的数据进行增加, 删除和修改的时候, 索引也要动态的维护, 这样就降低了数据的维护速度


MySQL的索引可以分为几类?

1> 普通索引和唯一索引

2> 单列索引和组合索引

3> 全文索引

4> 空间索引


设计索引是, 应该考虑哪些准则?

1> 索引并非越多越好, 一个表中如有大量的索引, 不仅占用磁盘空间, 而且还会影响语句的性能, 因为当表中的数据更改的同时, 索引也会进行调整和更新

2> 避免对经常更新的表进行过多的索引, 并且索引中的列尽可能少.而对经常用于查询的字段应该创建索引, 但要避免添加不必要的字段

3> 数据量少的表最好不要使用索引

4> 在条件表达式中经常用到的不同值较多的列上建立索引, 在不同值少的列上不要建立索引

5> 当唯一性是某种数据本身的特征时, 指定唯一索引. 使用唯一索引需能确保定义的列的数据完整性, 以提高查询速度

6> 在频繁进行排序或分组的列上建立索引, 如果待排序的列有多个, 可以在这些列上建立组合索引


视图的含义?

视图是一个虚拟表, 是从数据库中一个或多个表中导出来的表


视图的优点?

1> 简单化

视图不仅可以简化用户对数据的理解, 也可以简化他们的操作

2> 安全性


3> 逻辑数据独立性

视图可帮助用户屏蔽真实表结构变化带来的影响


详谈MySQL性能优化?

1> 尽量使用具有唯一标识的字段进行查询

2> 如果是字符串数据, 能用=号的尽量使用=号, 不要过多的使用like查询

3> 连接查询中不要使用子查询, 全部使用连接查询(内连接\左连接\右连接\自连接)

4> 对经常查询的表的某列/多列建立的索引, 提高查询效率

5> 对数据进行分区, 分表

6> 搭建数据库集群, 分布式数据库

7> 对数据进行读写分离

8> 提高服务器硬件处理能力

9> 根据硬件配置, 设置MySQL服务的配置文件my.ini/my.cnf











猜你喜欢

转载自blog.csdn.net/qq_41664526/article/details/79919894