MySQL初识

1. 常用sql语法:

a. 数据定义语言DDL(Data Definition Language):对数据库内部的对象进行创建、修改、删除等操作;与DML区别在于DML语句只针对表中数据,不涉及表的元信息;DDL主要面向DBA(数据库管理人员)

 

b. 数据操作语句DML(Data Manipulation Language):对数据库中数据进行CURD增删改查,面向开发人员 

 

c. 数据控制语句DCL(Data Control Language):用于管理系统中对象的权限,面向DBA

 

 

2. 事物(Transaction)

  不可分割的一系列数据库操作,这些操作要么整体成功,要么整体失败。事物以commit或rollback语句结束,commit结束表示事物执行成功,rollback表示事物执行失败。

 

3. MySQL性能优化

    性能优化本身是较大的命题,需要对数据库存储原理、执行过程、引擎等底层原理有较深理解,此处不做深入探讨。

    解决思路始终不变:定位问题原因--->查找解决办法。定位根因可借助结合MySQL日志,生成执行计划等手段定位。

4. 索引

  参照字典的索引,创建索引后可以提升读数据效率,但同时会降低写数据的效率;简单理解,根据索引更容易找数据,写数据时需要同时建立索引,会增加写数据负担。

创建索引可以参考以下几点:

a. 搜索的索引列:针对where条件中的列创建索引;

b. 使用唯一索引:尽量对数据离散的列创建索引,有助于缩小查询范围;如不推荐针对性别列创建索引,因为此索引只能删选出一半的数据;

c. 使用短索引(前缀索引):对char(200)的列创建索引时可以规定索引长度为char(20),既能良好的区分数据又能减小数据库的负担;create index cityname on city (city(10));drop idex idex_name on tablename;

d. 不要过度索引:索引并不是越多越好,太多无用或不适合的索引会导致读写效率下降;Mysql在生成执行计划时需要考虑各个索引,花费时间;

e. InnoDB表尽量自己指定主键(每行唯一),InnoDB表的普通索引会保存主键的键值,选择较短的数据类型做主键可以有效减少索引的磁盘占用,提高索引的缓存效果。

 

5. SQL注入

    ​应用与数据库交互通过接口进行,数据库自身是无法分辨传入的SQL是合法的还是不合法的,如果传入的SQL语句被恶意用户控制或者篡改,将导致数据库以当前调用者的身份执行预期之外的命令并且返回结果,导致安全问题。

 

posted @ 2019-06-06 18:21  北辰Root  阅读(134)  评论(0编辑  收藏  举报