随笔分类 -  MysQL数据库

摘要:主键优化 主键即表查询应用列。主键上有相应的索引,用于快速查询。主键要求不能为null。InnoDB 引擎物理上以一种有助于快速查询的方式存储。 如果表比较大,且很重要,但是没有特别适合做主键的列,则,应该创建一个额外的列,以auto-increment方式增长,作为主键。可以作为联合查询的外键。 阅读全文
posted @ 2020-03-21 14:23 小青年て 阅读(105) 评论(0) 推荐(0)
摘要:慢查询的原因 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询或其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题, 阅读全文
posted @ 2020-03-18 19:48 小青年て 阅读(1037) 评论(0) 推荐(0)
摘要:1.SQL注入是什么?如何产生的? SQL注入(SQLi)是一种注入攻击,,可以执行恶意SQL语句。 程序开发过程中不注意规范书写sql语句和对特殊字符进行过滤,导致客户端可以通过全局变量POST和GET提交一些sql语句正常执行,产生Sql注入。 2.如何防止SQL注入 a. 过滤掉一些常见的数据 阅读全文
posted @ 2020-03-18 14:29 小青年て 阅读(84) 评论(0) 推荐(0)
摘要:优化查询 1、储存引擎选择:如果数据表需要事务处理,应该考虑使用InnoDB,因为它完全符合ACID特性。如果不需要事务处理,使用默认存储引擎MyISAM是比较明智的2、分表分库,主从。3、对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引4、应尽 阅读全文
posted @ 2020-03-16 23:34 小青年て 阅读(369) 评论(0) 推荐(0)
摘要:行锁:对表操作时对操作行上锁。表锁:对表操作是锁上整个表的数据。共享锁:对于多个不同的事务,对同一个资源共享同一个锁。但是对于insert ,update,delete事务则会自动加上排它锁。在执行语句后面加上lock in share mode就代表对某些资源加上共享锁。 eg: 可同时执行多个s 阅读全文
posted @ 2020-02-28 22:53 小青年て 阅读(148) 评论(0) 推荐(0)
摘要:索引与慢查询优化 1.为何要有索引 知识回顾:数据都是存在硬盘上的,那查询数据不可避免的需要进行IO操作 索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。 primary key unique key index key primary key unique key ind 阅读全文
posted @ 2019-08-23 17:26 小青年て 阅读(254) 评论(0) 推荐(0)
摘要:一、视图 1.什么是视图 一个查询语句的结果是一张虚拟表,将这种虚拟表保存下来 它就变成了一个视图 2.为什么要用视图 当频繁需要用到多张表的连表结果,你就可以事先生成好视图 之后直接调用即可,避免了反复写连表操作的sql语句 3.如何使用视图 创建视图语句: create view teacher 阅读全文
posted @ 2019-08-23 17:06 小青年て 阅读(215) 评论(0) 推荐(0)
摘要:一、创建连接库 1.建立游标 2.查看内容 3.移动游标 4.增删改操作 5.完整版 二、sql注入问题 阅读全文
posted @ 2019-08-22 19:44 小青年て 阅读(135) 评论(0) 推荐(0)
摘要:一、单表查询 前期表准备 1.语法执行顺序 2.where约束条件 3.group by 4.having 跟where是一模一样的 也是用来筛选数据 但是having是跟在group by之后的 where是对整体数据做一个初步的筛选 而having是对分组之后的数据再进行一次针对性的筛选 hav 阅读全文
posted @ 2019-08-21 20:39 小青年て 阅读(528) 评论(0) 推荐(0)
摘要:一、Mysql存储引擎 1.innodb MySql 5.6 版本默认的存储引擎。查询速度较myisam更慢,但是更安全InnoDB 是一个事务安全的存储引擎,它具备提交、回滚以及崩溃恢复的功能以保护用户数据。 2.myisam MyISAM既不支持事务、也不支持外键、其优势是访问速度快,但是表级别 阅读全文
posted @ 2019-08-20 20:31 小青年て 阅读(191) 评论(0) 推荐(0)
摘要:一、一对多 1.确立表与表之间的关系 一定要换位思考(必须两方都考虑周全之后才能得出结论) 以员工表和部门表为例: 1.先站在员工表看能否有多个员工对应一个部门 翻译过来: 一个部门能否有多个员工 可以!!!(暂时只能确定员工单向多对一部门) 2.再站在部门表看能否有多个部门对应一个员工 翻译过来: 阅读全文
posted @ 2019-08-20 20:05 小青年て 阅读(752) 评论(0) 推荐(0)
摘要:一、初识数据库 数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。 二、数据库之MySQL 1.概念 本质就是一款基于网络通信的应用软件 任何基于网络 阅读全文
posted @ 2019-08-17 15:47 小青年て 阅读(152) 评论(0) 推荐(0)