mysql
Srodong
这个作者很懒,什么都没留下…
展开
-
MySQL存储过程 简单使用
先说一下存储过程 解释搬运存储过程简介SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。当想要在不同的应用程序或平台上执行相同的函数,或者封装特定...原创 2019-03-05 11:02:19 · 251 阅读 · 0 评论 -
索引无法应用的情况,隐式类型转换,隐式字符编码转换
索引无法应用的情况条件字段函数操作select count(*) from test where month(modified)=7;如果对字段做了函数计算,就用不上索引了,这是 MySQL 的规定。对索引字段做函数操作,可能会破坏索引值的有序性,因此优化器就决定放弃走树搜索功能。MySQL 无法再使用索引快速定位功能,而只能使用全索引扫描。隐式类型转换selec...原创 2019-07-26 15:36:19 · 2464 阅读 · 0 评论 -
MySQL的索引方面问题,刷脏页,重建表。
优化器怎么选择索引而优化器选择索引的目的,是找到一个最优的执行方案,并用最小的代价去执行语句。在数据库里面,扫描行数是影响执行代价的因素之一。扫描的行数越少,意味着访问磁盘数据的次数越少,消耗的 CPU 资源越少。当然,扫描行数并不是唯一的判断标准,优化器还会结合是否使用临时表、是否排序等因素进行综合判断。扫描行数是怎么判断的?MySQL 在真正开始执行语句之前,并不能精确地知道满足...原创 2019-06-27 14:57:13 · 1133 阅读 · 0 评论 -
MySQL中sql语句count(*),orderby,随机数据展示。
count(*)这么慢,我该怎么办?MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高;而 InnoDB 引擎就麻烦了,它执行 count(*) 的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。这里需要注意的是这是说没有过滤条件的 count(*),如果加了 where 条件的话,MyISAM 表也是不能返回得这么快的。...原创 2019-07-02 16:11:48 · 5345 阅读 · 0 评论 -
MySQL怎么执行的?mysql的索引,mysql中的锁。
一条sql语句是怎么执行的。第一步 连接数据库 连接器负责跟客户端建立连接、获取权限、维持和管理连接第二步 查询缓存MySQL 拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。之前执行过的语句及其结果可能会以 key-value 对的形式,被直接缓存在内存中 (MySQL8.0取消了缓存机制)第三步 分析器 对sql语句进行解析第三步 优化器 会考虑用哪个索...原创 2019-06-03 15:53:03 · 468 阅读 · 0 评论 -
MySQL唯一索引和普通索引运行原理和使用选择
普通索引这是最基本的索引类型,而且它没有唯一性之类的限制。唯一性索引这种索引和前面的“普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一。这两种索引的运行原理查询过程对于普通索引来说,查找到满足条件的第一个记录后,需要查找下一个记录,直到碰到第一个不满足条件的记录。对于唯一索引来说,由于索引定义了唯一性,查找到第一个满足条件的记录后,就会停止继续检索...原创 2019-03-27 11:43:57 · 6803 阅读 · 4 评论 -
MySQL可重复读事务隔离具体是怎么实现的?
事务的启动会有的操作 事务的隔离等级有四种,现在说默认的可重复读,可重复读就是一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。当然在可重复读隔离级别下,未提交变更对其他事务也是不可见的。https://blog.csdn.net/Srodong/article/details/88688084 事务的隔离等级 可重复读隔离级别的事务启动的时候会创建一个视图 ...转载 2019-03-26 16:25:43 · 2200 阅读 · 8 评论 -
MySQL事务的启动和实现
事务的实现之前的文章说过事务隔离等级 https://blog.csdn.net/Srodong/article/details/88688084现在说说事务等级为“可重复读”的事务怎么是实现的在 MySQL 中,实际上每条记录在更新的时候都会同时记录一条回滚操作。记录上的最新值,通过回滚操作,都可以得到前一个状态的值。假设一个值从 1 被按顺序改成了 2、3、4,在回滚日志里面就...原创 2019-03-26 14:40:20 · 3265 阅读 · 0 评论 -
Mysql优化三(读写分离、主从复制)
主服务器负责写入数据,从服务器复制主服务器数据。主从复制:从服务器复制主服务器数据读写分离:不同的服务器,进行不同的操作,专门写的服务器,专门读的服务器,把读写操作,分配不同的服务器上。主从复制使用范围:主从复制之后,从服务器数据备份了主服务器的数据,所以从服务器可以作为备份数据的服务器 主从复制之后,为了实现业务上的读写分离操作从服务器多于主服务器mysql实现主从复制,...原创 2019-03-12 21:31:50 · 764 阅读 · 0 评论 -
MySQL的预处理语句和php下使用
MySQL的预处理语句预处理语句大大减少了分析时间,只做了一次查询(虽然语句多次执行)。绑定参数减少了服务器带宽,你只需要发送查询的参数,而不是整个语句。预处理语句针对SQL注入是非常有用的,因为参数值发送后使用不同的协议,保证了数据的合法性。不带参数预处理准备预处理语句:prepare语句名称 from “预处理的sql语句”;prepare sql_y from "...原创 2019-03-21 11:10:41 · 452 阅读 · 0 评论 -
MySQL四大特性与事务隔离等级
事务的隔离级别在数据库操作中,为了有效保证并发读取数据的正确性,提出的事务隔离级别。InnoDB存储引擎提供事务的隔离级别有 读未提交(Read uncommitted)、读提交(Read committed)、可重复读(Repeatable read)和串行化(Serializable )。读未提交是指,一个事务还没提交时,它做的变更就能被别的事务看到。读提交是指,一个事务提交之...原创 2019-03-20 15:10:53 · 426 阅读 · 0 评论 -
MySQL优化二(索引、缓存、分区分表、慢查询日志)
索引1.什么是索引?正常查询数据表操作,需要遍历扫描整个表数据。索引是一种结构,里面有相对应的算法。可以保证速度更快的查询出来。就是把建立索引的字段,单独存储起来,对应存储字段和对应的真实数据文件存储的物理地址。比如:公交站牌的上的站点数据,就是一个索引,可以帮助找到对应的站点信息办公大楼的门牌索引,可以更快找到对应的公司办公地点书的目录所记录的页数,也是一个索引,可以...原创 2019-03-11 17:09:20 · 1095 阅读 · 0 评论 -
Mysql优化一(存储引擎、列类型、范式规范)
Mysql核心优化在大部分的动态网站中,需要读取数据从mysql中,很多时间也是浪费在查询数据上,如果数据量特别大的,数据文件占用空间也同时变大,造成查询数据返回时间变慢。但是很多数据,还必须要读取mysql数据库,所以进行mysql的相关优化是很有必要的。优化方面1)存储层(数据): 存储引擎、列类型、范式规范2)设计层(单台服务器): 索引、缓存、分区分表3)sql语句层:...原创 2019-03-11 11:27:02 · 277 阅读 · 0 评论 -
mysql四种语言和常用查询语句
用一个sql语句查询出发表留言数量大于10条的用户名及其留言数量,查询结果按文章数量降序排列参考答案:用户表结构如下: 表名 user 字段名 字段说明 字段类型 索引 user_id 用...原创 2019-10-10 15:56:08 · 710 阅读 · 0 评论