SQL语句执行过程详解,一条sql到底是怎样执行的

一、SQL语句执行原理: 第一步:客户端把语句发给服务器端执行 当我们在客户端执行 select 语句时,客户端会把这条 SQL 语句发送给服务器端,让服务器端的进程来处理这语句。也就是说,Oracle 客户端是不会做任何的操作,他的主要任务就是把客户端产生的一些 SQL 语句发送给服务器端。虽然在客户端也有一个数据库进程,但是,这个进程的作用跟服务器上的进程作用事不相同的。服务....
  •   
  • 25
  • mysql
  • 0
  • dodobook
  • 2017/02/24
mysql_dba_4

大型网站应用中MySQL的架构演变史[转载]

没有什么东西是一成不变的,包含我们的理想和生活!MySQL作为一个免费的开源的关系型数据库,深受大家喜爱,从最初的无人问津到当下的去IOE,都体现出了MySQL举足轻重的作用。今天我们就从淘宝的发展来阐述MySQL在大型网站下的架构演变史! MySQL的可扩展性 架构的可扩展性往往和并发是息息相关,没有并发的增长,也就没有必要做高可扩展性的架构,这里对可扩展性进行简单....
  •   
  • 82
  • mysql
  • 0
  • dodobook
  • 2017/02/17

互联网公司为啥不使用MySQL分区表?[转载]

缘起:有个朋友问我分区表在58的应用,我回答不出来,在我印象中,百度、58都没有听说有分区表相关的应用,业内进行一些技术交流的时候也更多的是自己分库分表,而不是使用分区表。于是去网上查了一下,并询问了58到家的DBA专家,将自己收到的信息沉淀下来,share给大伙。 解决什么问题? 回答:当mysql单表的数据库过大时,数据库的访问速度会下降,“数据量大”问题的常见....
  •   
  • 84
  • mysql
  • 0
  • dodobook
  • 2017/02/16

MySQL查询缓存打开、设置、参数查询、性能变量

query_cache_type 使用查询缓存的方式 一般情况下,query_cache_type的默认情况下是OFF, 也可以根据需要进行设置为ON。开启可以修改mysql的配置文件或者使用mysql的设置语句. mysql> SELECT @@query_cache_type; +--------------------+ | @@query_cache_type | +--------------------+ | ON | +--------------------+ //query_cache_type有3个....
  •   
  • 47
  • mysql
  • 1
  • dodobook
  • 2017/02/15

MySql查询缓存机制的简介

缓存机制简单的说就是缓存sql文本及查询结果,如果运行相同的sql,服务器直接从缓存中取到结果,而不需要再去解析和执行sql。如果表更改了,那么使用这个表的所有缓冲查询将不再有效,查询缓存值的相关条目被清空。更改指的是表中任何数据或是结构的改变,包括INSERT、UPDATE、DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE等,也包括那些映射到改变了的表的....
  •   
  • 62
  • mysql
  • 0
  • dodobook
  • 2017/01/23

MYSQL常见索引类型(主键索引/唯一索引/普通索引/组合索引)

在数据量特别大的数据库表中,对字段建立索引可以大大提高查询速度。通过善用这些索引,可以令MySQL的查询和运行更加高效。 一、MySQL常见的索引类型如下 MySQL常见索引有:主键索引、唯一索引、普通索引、全文索引、组合索引 PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY (`column`) UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE (`c....
  •   
  • 76
  • mysql
  • 0
  • dodobook
  • 2017/01/20

MySQL查看、创建、修改和删除索引(Index)的方法

MySQL在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。 1.MySQL创建索引 在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。 //ALTER TABLE ALTER TABLE用来创建普通索引、UNIQUE索引....
  •   
  • 76
  • mysql
  • 0
  • dodobook
  • 2017/01/20
mysql_批量插入_1

MySQL批量插入大量(10万条)数据的性能对比

MySQL的各个版本之间的改进和优化以及变化都很大,我们的服务器性能以及复杂度也变化很大。小编dodo只是做了一个简单的本地测试。以下数据仅供参考,实践实践验证里的唯一标准。 本地服务器:Windows CPU--i7 内存8G 64位的系统 MySQL版本:5.7.11 PHP框架: Yii2 场景需求如下: 目标:插入10万条文章的列表数据(没有文章内容) 数据库中id是自增主键 插入字段:栏目I....
  •   
  • 365
  • mysql
  • 0
  • dodobook
  • 2017/01/19

Yii2的bacthInsert以及MySQL中的INSERT IGNORE INTO 批量

之前写了一篇Yii2批量插入的方法,现在处理一下再批量插入过程中出现重复主键等的报错的机制。Yii2的batchInsert中batchInsert($table, $columns, $rows);只接收3个参数,没有ignore这个参数。所以也就没有在批量插入的时候有忽略跳过错误的方法。也就是其中一条语句报错,则该执行全部不执行,和mysql的执行语句保持一致。下面看代码。(假设我需要对用户打标签,并且有个....
  •   
  • 180
  • mysql
  • 0
  • dodobook
  • 2016/12/28

求MySQL一个SQL语句 不包含某个标签的用户列表

现在的需求和情况是有两张表(用户表和用户标签表),单个用户可以有多个标签,也可以没有任何标签。现在需要查询出不包含某个标签的用户的列表。 用户表 user_list ---ul user_id name 1 qq 2 weibo 3 weixin 4 facebook 5 twitter 用户标签标签表 user_tag ---ut user_id tag_id 1 100 1 101 1 102 3 101 5 102 求sql语句 查....
  •   
  • 197
  • mysql
  • 0
  • dodobook
  • 2016/11/18
MySQL8.0

MySQL 8.0 DMR 发布,废弃了 MyISAM 存储引擎

MySQL 8.0发布,是时候与MyISAM说再见了!!!! MySQL 8.0 DMR(development milestone release)发布,作为Oracle MySQL ACE已在半个多月前就收到邮件通知,并提供了8.0的下载安装包。但由于官方要求,只能自己默默测试,无法给大家带来一手消息。    当然,8.0继续保持体积不断增大的优良传统。5.7的600M+已经让人难以接受,8.0直接来到了720M+,这绝对是要追赶Oracle的节奏....
  •   
  • 305
  • mysql
  • 2
  • dodobook
  • 2016/09/26

MySQL最优配置文件·20160901[转载]

之前Inside君分享过MySQL 5.6 & 5.7最优配置模板,受到了不少小伙伴的推崇。结合这段时间的生产环境实战经验以及同学们的反馈,故对此配置文件做了一定的调整。 同时,希望小伙伴们能积极转发此文,为打造一个最优MySQL标准配置文档做出自己的贡献。欢迎大家提供反馈意见。 在这份配置文件中,Inside君假设这台服务器的CPU为32 Core,内存为256G,存储为SSD,并且在16....
  •   
  • 258
  • mysql
  • 0
  • dodobook
  • 2016/09/26

解决MySQL启动出现The server quit without updating PID file.

今天早上在一个技术群里面帖了一下自己的博客地址。不知道是哪位大神的恶作剧,还是其他方面的原因(待分析),发现自己的网站504 Bad Gate 了。持续了几分钟还是这个错误,试图登录服务重启相关的nginx进程。 发现登录Linux也很久没登录成功,果断直接就去阿里云的后台重启服务器了(不建议这么处理).之后能登录服务器,但是发现网站还是访问不了,报错是数据库未启动。Error estab....
  •   
  • 480
  • mysql
  • 0
  • dodobook
  • 2016/09/13

Linux(CentOS)下启动/停止/重启MySQL数据库的方法

Linux服务器下面的MySQL需要定期的维护,就需要掌握一些常见的命令,MySQL启动、停止MySQL、重启MySQL等是每个拥有独立主机的站长必须要撑握的操作,下面为大家简单介绍一下操作方法: 一、MySQL启动方式 1、使用 service 启动:service mysqld start 2、使用 mysqld 脚本启动:/etc/init.d/mysqld start 3、使用 safe_mysqld 启动:safe_mysqld& 二、MySQL停止....
  •   
  • 763
  • mysql
  • 0
  • dodobook
  • 2016/09/12

MySQL5.7里datetime字段Invalid default value ‘0000-00-00′

最近在做一个数据库的备份和迁移,从mysql5.6备份之后迁移到mysql5.7里面,因为mysql5.7的性能有很大的提高。备份很顺利,还原却遇到了问题: [SQL] CREATE TABLE `member2` ( `id` int(11) NOT NULL, `name` varchar(20) NOT NULL, `birth` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;....
  •   
  • 509
  • mysql
  • 0
  • dodobook
  • 2016/09/11

MySQL中的varchar类型 char类型、text类型详解与区别

1.varchar类型的变化 MySQL 数据库的varchar类型在4以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。在 MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个字 节,也就是说,在4.1或以下版本中需要使用固定的TEXT或BLOB格式存放的数据可以使用可变长的varchar来....
  •   
  • 302
  • mysql
  • 0
  • dodobook
  • 2016/09/06

MySQL中varchar()的最大长度 char(255)最大长度

MySQL的vachar字段的类型虽然最大长度是65535,但是并不是能存这么多数据,最大可以到65533(不允许非空字段的时候),当允许非空字段的时候只能到65532。 varchar()最大可设置为 65532 / 3 = 21844 (utf8) char()最大是255个字符,不论什么编码 英文和数字的话两种都是一个字母是1个字节. 就中文汉字来说,utf8占3个字节,gbk占2个字节。varchar(n),这里的n代表n个字符。 mysql表....
  •   
  • 359
  • mysql
  • 0
  • dodobook
  • 2016/09/06

MySQL中varchar(20)可以存多少个汉字 char(20)可以存多少汉字

设计数据库字段长度的时候,不由得会想:MySQL中varchar(20)可以存多少个汉字?char(20)可以存多少汉字?? 答案:都是20个!!! MySQL中varchar(20)可以存20个汉字!!! MySQL中varchar(20)可以存20个字母数字。 MySQL中char(20)是可以存20个汉字或字母的。 因为:mysql中的varchar适合输入英文和数字以及汉字。 4.0版本及以下,varchar(20),指的是20字节,如果存放UTF8汉字时,....
  •   
  • 408
  • mysql
  • 0
  • dodobook
  • 2016/09/06

MySQL主键能重复吗?一台服务器可以安装多个MySQL吗?

MySQL主键能重复吗? 不能!!! MySQL主键能为空吗? 不能!!!! MySQL联合主键其中字段能为空吗? 不能!!!! MySQL的text字段可以设默认值吗? 不能!!! 一台服务器可以安装多个MySQL吗? 可以!!!! 目录和端口不一样就可以了 拷贝一份,改下配置文件就可以了 MySQL一台服务器能做主从吗? 可以!!! 一台服务上多个MySQL提供服务 如果你多个mysql都提供服务的话,这不叫主从了,这....
  •   
  • 252
  • mysql
  • 0
  • dodobook
  • 2016/09/06

修改更新查找MySQL5.7.x的root用户的默认密码

最近新安装了wamp3.0.4里面附带的mysql已经升级到了5.7版本了。MySQL5.7在性能方面有很大的提升。安装成功之后默认root的密码为空能登录。但是正常情况下需要给root重新设置新的密码。对于MySQL5.7版本来说和之前的5.6及以下版本的user表不一样了(user表里面没有了password这个字段了,mysql5.7 中保存密码的字段是 authentication_string)。直接上命令行。 mysql5.7 ....
  •   
  • 517
  • mysql
  • 0
  • dodobook
  • 2016/08/31