mysql
文章平均质量分 51
Unique-You
这个作者很懒,什么都没留下…
展开
-
MySQL服务器相互作用的通讯协议
Mysql服务器相互作用的通讯协议包括TCP/IP,Socket,共享内存,命名管道MySQL实现了四种通信协议TCP/IP协议,通常我们通过来连接MySQL,各种主要编程语言都是根据这个协议实现了连接模块Unix Socket协议,这个通常我们登入MySQL服务器中使用这个协议,因为要使用这个协议连接MySQL需要一个物理文件,文件的存放位置在配置文件中有定义,值得一提的是,这是所有协议中最高效...转载 2018-03-26 09:59:54 · 661 阅读 · 0 评论 -
MySQL覆盖索引
概念如果索引包含所有满足查询需要的数据的索引成为覆盖索引(Covering Index),也就是平时所说的不需要回表操作判断标准使用explain,可以通过输出的extra列来判断,对于一个索引覆盖查询,显示为using index,MySQL查询优化器在执行查询前会决定是否有索引覆盖查询 注意1、覆盖索引也并不适用于任意的索引类型,索引必须存储列的值2、Hash 和full-text索引不存储值...转载 2018-07-09 18:37:32 · 770 阅读 · 0 评论 -
压缩(前缀压缩)索引
MyISAM使用前缀压缩来减少索引的大小,从而让更多的索引可以放入内存中,这在某些情况下能极大地提高性能。默认只压缩字符串,但通过参数设置也可以对整数做压缩。MyISAM压缩每个索引块的方法是,先完全保存索引块中的第一个值,然后将其他值和第一个值进行比较得到相同前缀的字节数和剩余的不同后缀部分,把这部分存储起来即可。例如,索引块中的第一个值是“perform“,第二个值是”performance“...原创 2018-07-10 09:25:08 · 2605 阅读 · 0 评论 -
加速alter table
MySql的ALTER TABLE 操作的性能对大表来说是个大问题。MySQL执行大部分修改表结构操作的方法是新建一个需要的结构的空表,从旧表中查出所有数据插入新表,然后删除旧表。这样操作肯需要花费很长时间,如果内存不足而表又很大,而且还有很多索引的情况下尤其如此。许多人都有这样的经验。ALTER TABLE操作需要花费数个小时甚至数天才能完成。MySQL5.1以及更新版本包含一些类型的“在线”操...原创 2018-07-10 09:58:43 · 446 阅读 · 0 评论 -
《高性能MySQL》---查询性能优化
目录一、基本原则:优化数据访问二、重构查询三、MySql如何优化和执行查询四、MySql能处理的一些优化类型五、联接查询六、优化特定类型的查询七、查询优化提示 本篇深入了解查询优化和服务器的内部机制,了解MySql如何执行特定查询,从中也可以知道如何更改查询执行计划,当我们深入理解MySql如何真正地执行查询,明白高效和低效的真正含义,在实际应用中就能扬长避短。声明:本人使用的数据库版本为MySq...转载 2018-07-10 16:03:18 · 1646 阅读 · 0 评论 -
为什么要使用索引?
前言 为什么要使用索引?影响数据库效率的原因千千万万,使用索引是为了解决哪方面的数据库的瓶颈?如果我们到现在只知道使用索引能够查询更快、索引就像目录,我们根据目录再进行查询就很快,等等这些东西,那我们还有很长的路要走。点一 MySQL 数据库存储数据最终是以文件的形式存储到硬盘的。一般来说,我们在程序中使用的时候肯定要把磁盘文件中的数据读到内存中。那么就这个 “读” 的过程是什么样子的呢?磁盘...转载 2018-07-03 19:58:28 · 2137 阅读 · 0 评论 -
MySql索引类型
Mysql支持哪几种索引索引是在MySql的存储引擎层中实现的,而不是在服务器层从数据结构角度1、B+树索引(O(log(n))):关于B+树索引,可以参考 MySQL索引背后的数据结构及算法原理BTREE在MyISAM里的形式和Innodb稍有不同在 Innodb里,有两种形态:一是primary key形态,其leaf node里存放的是数据,而且不仅存放了索引键的数据,还存放了其他字段的数据...转载 2018-07-04 22:15:19 · 23574 阅读 · 1 评论 -
MySql 使用索引进行查询优化;常用mysql优化
索引有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引...转载 2018-07-05 16:36:46 · 32518 阅读 · 2 评论 -
MySQL正则表达式
1. Mysql的正则表达式仅仅使SQL语言的一个子集,可以匹配基本的字符、字符串。 select * from wp_posts where post_name REGEXP 'hello'; 可以检索出列post_name中所有包含hello的行 2. .匹配除\n之外的任意单个字符 select * from wp_posts where post_name REGEXP...转载 2018-07-05 17:03:08 · 26528 阅读 · 1 评论 -
MySQL事务控制和锁定语句
MySQL 支持对 MyISAM 和 MEMORY 存储引擎的表进行表级锁定,对 BDB 存储引擎的表进行页级锁定,对 InnoDB 存储引擎的表进行行级锁定。默认情况下,表锁和行锁都是自动获得的,不需要额外的命令。但是在有的情况下,用户需要明确地进行锁表或者进行事务的控制,以便确保整个事务的完整性,这样就需要使用事务控制和锁定语句来完成。 1) LOCK TABLE 和 UNLOCK TABLE...转载 2018-07-09 16:36:23 · 454 阅读 · 0 评论 -
MySQL触发器
MySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。创建触发器在MySQL中,创建触发器语法如下:CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt其中:trigge...转载 2018-07-09 16:26:15 · 411 阅读 · 0 评论 -
MySQL存储过程
点击打开链接存储过程简介SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。当想要在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用...转载 2018-07-09 15:52:03 · 295 阅读 · 0 评论 -
sql赋值语句
@表示声明一个局部变量,@@表示声明一个全局变量(比如已经定义好的系统变量)申明局部变量语法:declare @变量名 数据类型;例如:declare @num int;赋值:有两种方法式(@num为变量名,value为值)set @num=value; 或 select @num=value;DECLARE @count表示选定变量,SELECT @count=1表示为count赋值;这...原创 2018-03-26 10:13:31 · 22973 阅读 · 0 评论 -
mysql join
之前学习mysql的时候对于老师说的左连接,右连接…之类的概念一直不清楚,模模糊糊的。工作之后理解这些名词一概念,现在把它记录一下。也希望能够帮助对于mysql中join不太清晰的朋友。这样可以根据自己的业务场景选择合适的join语句。初始化SQL语句:/*join 建表语句*/drop database if exists test;create database test;use tes...转载 2018-03-21 22:56:55 · 281 阅读 · 0 评论 -
mysql 变量
MySQL数据库中,变量分为 系统变量(以"@@"开头)和用户自定义变量。系统变量分为全局系统变量(global)和会话系统变量(session)。@@global 仅用于访问全局系统变量的值;@@session 仅用于访问会话系统变量的值;@@ 先访问会话系统变量的值,若不存在则去访问全局系统变量的值;sql_mode 为系统变量,既是全局系统变量,又是会话系...原创 2018-03-26 16:41:25 · 259 阅读 · 0 评论 -
mysql复制 开启事务
Mysql复制分成三步: (1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events); (2) slave将master的binary log events拷贝到它的中继日志(relay log); (3) slave重做中继日志中的事件,将改变反映它自己的数据。mysql日志一般分为5种错误日志:-lo...原创 2018-03-27 10:37:06 · 472 阅读 · 0 评论 -
mysql 存储引擎
来自点击打开链接 点击打开链接数据库中的存储引擎其实是对使用了该引擎的表进行某种设置,数据库中的表设定了什么存储引擎,那么该表在数据存储方式、数据更新方式、数据查询性能以及是否支持索引等方面就会有不同的“效果”。在MySQL数据库中存在着多种引擎(不同版本的MySQL数据库支持的引擎不同),熟悉各种引擎才能在软件开发中应用引擎,从而开发出高性能的软件,MySQL数据库中的引擎有哪些呢?一般来...转载 2018-03-28 20:57:55 · 199 阅读 · 0 评论 -
mysql 视图
视图包含下列结构是不可以更新的 1:集合运算符 union,union all, intersect,minus 2:distinct关键字 3:group by,order by,connect by,或者start with 4:子查询 5:分组函数 6:需要更新的列不是视图定义的 7:具有连接查询(可以更新键值保存表的数据) 8:违反基表的约束条件;连接视图是指基于多表连接查询创建的视图(一...转载 2018-04-04 21:22:22 · 235 阅读 · 0 评论 -
mysql 事务
场景构思假设该场景发生于一个银行转账背景下,月中,又到了发工资的日子。学校打算给A老师发放一个月的工资。(此处,我们假设转账都是由人工操作的),整个过程本应该如下:学校财务核对A老师工资单确认学校账上还有这么多钱向银行提出转账申请,银行扣除学校财务卡上的指定金额银行向A老师工资卡打入指定金额银行汇报双方交易完成但是,当这个过程执行完第3步的时候,突然大断电!整个电力系统进入瘫痪。待电力系统回复之后...转载 2018-03-29 14:37:20 · 485 阅读 · 0 评论 -
mysql 锁
点击打开链接一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计...转载 2018-03-29 17:17:54 · 174 阅读 · 0 评论 -
MySQL优化数据库对象
1、优化表的数据类型使用PROCEDURE ANALYSE()对当前应用的表进行分析,该函数可以对数据表中列的数据类型提供优化建议。select* from tbl_name PROCEDURE ANALYSE();select* from tbl_name PROCEDURE ANALYSE(16,256);第二句告诉PROCEDURE ANALYSE()不要为那些包含的值多于16个或者256...原创 2018-07-05 19:19:37 · 342 阅读 · 0 评论