InnoDB

mysql5.7 for windows二进制安装及配置

柔情痞子 提交于 2020-11-26 09:32:39
1)mysql5.7二进制软件下载 下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 下载软件:mysql-5.7.25-win64.zip 2)解压软件到指定目录 d:\mysql-5.7.25 3)配置环境变量及path 环境变量名:MYSQL_HOME path添加:path=%path%;%MYSQL_HOME%\bin 4)编辑my.ini参数文件(添加如下变量)并保存至%MYSQL_HOME%\bin [mysql] default-character-set=utf8 [mysqld] port=3306 basedir=d:\mysql-5.7.25 datadir=d:\mysql-5.7.25\data max_connections=200 character-set-server=utf8 default-storage-engine=innodb 5)打开命令窗口并安装mysql d:\> cd d:\mysql-5.7.25\bin d:\> mysqld install --注:如果报错关于MSVCR120.dll及MSVCP120.dll,则c:\windows\system2下缺少这两个文件,需要从其他类似系统上拷贝该两个文件到c:\windows\system2目录下,然后

我用对了这些场景下的索引,技术总监夸我棒

狂风中的少年 提交于 2020-11-26 09:02:35
前言 生产上为了高效地查询数据库中的数据,我们常常会给表中的字段添加索引,大家是否有考虑过如何添加索引才能使索引更高效,考虑如下问题 添加的索引是越多越好吗 为啥有时候明明添加了索引却不生效 索引有哪些类型 如何评判一个索引设计的好坏 看了本文相信你会对索引的原理有更清晰的认识。本文将会从以下几个方面来讲述索引的相关知识,相信大家耐心看了之后肯定有收获,码字不易,别忘了「在看」,「转发」哦。 什么是索引,索引的作用 索引的种类 高性能索引策略 索引设计准则:三星索引 什么是索引,索引的作用 当我们要在新华字典里查某个字(如「先」)具体含义的时候,通常都会拿起一本新华字典来查,你可以先从头到尾查询每一页是否有「先」这个字,这样做(对应数据库中的全表扫描)确实能找到,但效率无疑是非常低下的,更高效的方相信大家也都知道,就是在首页的索引里先查找「先」对应的页数,然后直接跳到相应的页面查找,这样查询时候大大减少了,可以为是 O(1)。 数据库中的索引也是类似的,通过索引定位到要读取的页,大大减少了需要扫描的行数,能极大的提升效率,简而言之,索引主要有以下几个作用 即上述所说,索引能极大地减少扫描行数 索引可以帮助服务器避免排序和临时表 索引可以将随机 IO 变成顺序 IO 第一点上文已经解释了,我们来看下第二点和第三点 先来看第二点,假设我们不用索引,试想运行如下语句 SELECT *

我以为我对Mysql索引很了解,直到我遇到了阿里的面试官

佐手、 提交于 2020-11-26 08:31:15
本文来自一位不愿意透露姓名的粉丝投稿 相信很多人对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构。 因为索引是MySQL中比较重点的知识,相信很多人都有一定的了解,尤其是在面试中出现的频率特别高。楼主自认为自己对MySQL的索引相关知识有很多了解,而且因为最近在找工作面试,所以单独复习了很多关于索引的知识。 但是,我还是图样图森破,直到我被阿里的面试官虐过之后我才知道,自己在索引方面的知识,只是个小学生水平。 以下,是我总结的一次阿里面试中关于索引有关的问题以及知识点。 索引概念、索引模型 我们是怎么聊到索引的呢,是因为我提到我们的业务量比较大,每天大概有几百万的新数据生成,于是有了以下对话: 面试官:你们每天这么大的数据量,都是保存在关系型数据库中吗? 我:是的,我们线上使用的是MySQL数据库 面试官:每天几百万数据,一个月就是几千万了,那你们有没有对于查询做一些优化呢? 我:我们在数据库中创建了一些索引(我现在非常后悔我当时说了这句话)。 这里可以看到,阿里的面试官并不会像有一些公司一样拿着题库一道一道的问,而是会根据面试者做过的事情以及面试过程中的一些内容进行展开。 面试官:那你能说说什么是索引吗? 我:(这道题肯定难不住我啊)索引其实是一种数据结构,能够帮助我们快速的检索数据库中的数据。 面试官:那么索引具体采用的哪种数据结构呢? 我

我以为我对Mysql索引很了解,直到我遇到了阿里的面试官

主宰稳场 提交于 2020-11-26 08:09:14
本文来自微信公众号:Hollis,原作者是一位不愿意透露姓名的粉丝 <!--more--> 相信很多人对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构。 因为索引是MySQL中比较重点的知识,相信很多人都有一定的了解,尤其是在面试中出现的频率特别高。楼主自认为自己对MySQL的索引相关知识有很多了解,而且因为最近在找工作面试,所以单独复习了很多关于索引的知识。 但是,我还是图样图森破,直到我被阿里的面试官虐过之后我才知道,自己在索引方面的知识,只是个小学生水平。 以下,是我总结的一次阿里面试中关于索引有关的问题以及知识点。 索引概念、索引模型 我们是怎么聊到索引的呢,是因为我提到我们的业务量比较大,每天大概有几百万的新数据生成,于是有了以下对话: 面试官:你们每天这么大的数据量,都是保存在关系型数据库中吗? 我:是的,我们线上使用的是MySQL数据库 面试官:每天几百万数据,一个月就是几千万了,那你们有没有对于查询做一些优化呢? 我:我们在数据库中创建了一些索引(我现在非常后悔我当时说了这句话)。 这里可以看到,阿里的面试官并不会像有一些公司一样拿着题库一道一道的问,而是会根据面试者做过的事情以及面试过程中的一些内容进行展开。 面试官:那你能说说什么是索引吗? 我:(这道题肯定难不住我啊)索引其实是一种数据结构

我用对了这些场景下的索引,技术总监夸我棒

自作多情 提交于 2020-11-26 04:15:52
点击上方 IT牧场 ,选择 置顶或者星标 技术干货每日送达 前言 生产上为了高效地查询数据库中的数据,我们常常会给表中的字段添加索引,大家是否有考虑过如何添加索引才能使索引更高效,考虑如下问题 添加的索引是越多越好吗 为啥有时候明明添加了索引却不生效 索引有哪些类型 如何评判一个索引设计的好坏 看了本文相信你会对索引的原理有更清晰的认识。本文将会从以下几个方面来讲述索引的相关知识,相信大家耐心看了之后肯定有收获,码字不易,别忘了「在看」,「转发」哦。 什么是索引,索引的作用 索引的种类 高性能索引策略 索引设计准则:三星索引 什么是索引,索引的作用 当我们要在新华字典里查某个字(如「先」)具体含义的时候,通常都会拿起一本新华字典来查,你可以先从头到尾查询每一页是否有「先」这个字,这样做(对应数据库中的全表扫描)确实能找到,但效率无疑是非常低下的,更高效的方相信大家也都知道,就是在首页的索引里先查找「先」对应的页数,然后直接跳到相应的页面查找,这样查询时候大大减少了,可以为是 O(1)。 数据库中的索引也是类似的,通过索引定位到要读取的页,大大减少了需要扫描的行数,能极大的提升效率,简而言之,索引主要有以下几个作用 即上述所说,索引能极大地减少扫描行数 索引可以帮助服务器避免排序和临时表 索引可以将随机 IO 变成顺序 IO 第一点上文已经解释了,我们来看下第二点和第三点

MySQL之表的约束

a 夏天 提交于 2020-11-26 03:31:37
一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性 主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (UK) 标识该字段的值是唯一的 AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键) DEFAULT 为该字段设置默认值 UNSIGNED 无符号 ZEROFILL 使用0填充 说明: 1 . 是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值 2 . 字段是否有默认值,缺省的默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值 sex enum( ' male ' , ' female ' ) not null default ' male ' age int unsigned NOT NULL default 20 必须为正值(无符号) 不允许为空 默认是20 3 . 是否是key 主键 primary key 外键 foreign key 索引 (index,unique...) 二 not null与default 是否可空,null表示空,非字符串 not null - 不可空 null - 可空 默认值

mysql 创建唯一约束表

给你一囗甜甜゛ 提交于 2020-11-26 02:54:30
<div class="htmledit_views" id="content_views"> <p>说明:</p> <p>    UNIQUE 约束唯一标识数据库表中的每条记录。</p> <p>    UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。</p> <p>    PRIMARY KEY 拥有自动定义的 UNIQUE 约束。</p> <p> 请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。</p> <p><br> 1、创建一个测试表:</p> <p>create table test(<br>     id int unsigned auto_increment,<br>     name varchar(50) not null,<br>     age int unsigned,<br>     unique(name),<br>     primary key(id)<br> )engine=innodb charset=utf8</p> <p>2、插入数据测试</p> <p>    insert into test(name,age) values('张三',21)<br> 查询<br>     <img alt="" class="has" height="93" src=

mysql 给表添加唯一约束、联合唯一约束,指定唯一约束的名字

时光总嘲笑我的痴心妄想 提交于 2020-11-26 01:49:17
表结构 [sql] view plain copy FIELD TYPE COLLATION NULL KEY DEFAULT Extra PRIVILEGES COMMENT ------------- ------------ -------------- ------ ------ ------- -------------- -------------------- ------- id BIGINT(20) ( NULL) NO PRI ( NULL) AUTO_INCREMENT SELECT, INSERT, UPDATE resource_name VARCHAR(128) gbk_chinese_ci YES ( NULL) SELECT, INSERT, UPDATE resource_type TINYINT(4) ( NULL) YES ( NULL) SELECT, INSERT, UPDATE 给resource_name和resource_type添加联合唯一约束 [sql] view plain copy ALTER TABLE jw_resource ADD UNIQUE KEY(resource_name, resource_type); 结果 show create table jw_resource; [javascript] view

我用对了这些场景下的索引,技术总监夸我棒

生来就可爱ヽ(ⅴ<●) 提交于 2020-11-25 07:54:43
前言 生产上为了高效地查询数据库中的数据,我们常常会给表中的字段添加索引,大家是否有考虑过如何添加索引才能使索引更高效,考虑如下问题 添加的索引是越多越好吗 为啥有时候明明添加了索引却不生效 索引有哪些类型 如何评判一个索引设计的好坏 看了本文相信你会对索引的原理有更清晰的认识。本文将会从以下几个方面来讲述索引的相关知识,相信大家耐心看了之后肯定有收获,码字不易,别忘了「在看」,「转发」哦。 什么是索引,索引的作用 索引的种类 高性能索引策略 索引设计准则:三星索引 什么是索引,索引的作用 当我们要在新华字典里查某个字(如「先」)具体含义的时候,通常都会拿起一本新华字典来查,你可以先从头到尾查询每一页是否有「先」这个字,这样做(对应数据库中的全表扫描)确实能找到,但效率无疑是非常低下的,更高效的方相信大家也都知道,就是在首页的索引里先查找「先」对应的页数,然后直接跳到相应的页面查找,这样查询时候大大减少了,可以为是 O(1)。 数据库中的索引也是类似的,通过索引定位到要读取的页,大大减少了需要扫描的行数,能极大的提升效率,简而言之,索引主要有以下几个作用 即上述所说,索引能极大地减少扫描行数 索引可以帮助服务器避免排序和临时表 索引可以将随机 IO 变成顺序 IO 第一点上文已经解释了,我们来看下第二点和第三点 先来看第二点,假设我们不用索引,试想运行如下语句 SELECT *

MySQL数据库my.cnf性能参数如何调优

北慕城南 提交于 2020-11-25 06:50:10
提供一个MySQL 5.6版本适合在1GB内存VPS上的my.cnf配置文件。 [client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock basedir = /usr/local/mysql datadir = /data/mysql pid-file = /data/mysql/mysql.pid user = mysql bind-address = 0.0.0.0 server-id = 1 #表示是本机的序号为1,一般来讲就是master的意思 skip-name-resolve # 禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项, # 则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求 #skip-networking back_log = 600 # MySQL能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用, # 然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。 # 如果期望在一个短时间内有很多连接