扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这是我mysql5.6解压版的安装过程,和5.7应该是一样的
成都创新互联专注于企业营销型网站、网站重做改版、宣化网站定制设计、自适应品牌网站建设、HTML5建站、商城网站制作、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为宣化等各大城市提供网站开发制作服务。
在官网下载mysql 5.6 windows64位软件
解压到C:\Program Files\MySQL\下(自己创建目录MYSQL\)
修改环境变量:我的电脑-属性-高级-环境变量
选择PATH,在其后面添加: 你的mysql bin文件夹的路径 (如:;C:\Program Files\MYSQL\mysql-5.6.27-winx64\bin )
修改配置文件C:\Program Files\MYSQL\mysql-5.6.27-winx64\my-default.ini
在其中修改或添加配置:
[mysqld]
basedir=C:\Program Files\MYSQL\mysql-5.6.27-winx64(mysql所在目录)
datadir=C:\Program Files\MYSQL\mysql-5.6.27-winx64\data (mysql所在目录\data)
以管理员身份运行cmd 输入cd C:\Program Files\MYSQL\mysql-5.6.27-winx64\bin
输入mysqld -install 继续在cmd中输入:net start mysql
服务启动成功之后,就可以登录了,输入mysql -u root -p(第一次登录没有密码,直接按回车过),登录成功!
创建aa账户并授权 grant all on *.* to aa@'%' identified by 'password';
flush privileges;
打开配置文件my-default.ini看到里面的basedir和datadir是没有打开的,前面有#,路径也是以“……”表示。
去掉basedir和datadir前面的#
basedir添加的是MySQL的解压路径;
datadir添加的是MySQL的data文件夹路径。
接下来就是配置环境变量,首先先把bin的地址复制:打开MySQL解压文件夹里面的bin文件夹,将鼠标点击到地址栏选中,复制地址(这样做的目的是防止打字出错,而且方便)。
把刚刚复制的bin路径添加的Path变量值,具体方法是:打开电脑桌面:计算机—右键—高级系统设置—高级—环境变量(N)—修改Path;就是将复制的地址栏粘贴到最后。(这里注意的是不同的路径之间用英文的“;”分开)确定,退出。
打开dos界面,具体方法是:在开始输入cmd.exe回车。
这一步很重要,初始化MySQL,需要进到MySQL解压目录下的bin文件:具体方法是:这里以F盘下的路径为例:
F:回车
F:cd phptools\MySQL\bin(回车)
F:\phptools\MySQL\binmysqld --initialize-insecure --user=mysql(回车,这一步就是初始化)
当出现Service successfully installed表示MySQL服务已经安装了,就差启动了。
启动MySQL在之前的F:\phptools\MySQL\bin输入:net start mysql;
出现:MySQL服务启动成功,表示这一次配置完毕。
接下来就是开启新版的MySQL之旅了,打开dos界面,输入mysql -u root -p然后回车,提示输入密码,如果没有密码就回车。
查看版本。至此MySQL5.7.10安装完毕。
我们都知道where条件如果在字段上带了函数就不会去走索引,不好优化,无意间了解到mysql一个新特性--虚拟列,专门处理这块问题的,下面一起来了解下吧~
在MySQL 5.7中,支持两种Generated Column,即 Virtual Generated Column和Stored Generated Column ,前者只将Generated Column保存在数据字典中(表的元数据),并不会将这一列数据持久化到磁盘上;后者会将Generated Column持久化到磁盘上,而不是每次读取的时候计算所得。很明显,后者存放了可以通过已有数据计算而得的数据,需要更多的磁盘空间,与Virtual Column相比并没有优势,因此,MySQL 5.7中,不指定Generated Column的类型,默认是Virtual Column。
如果需要Stored Generated Golumn的话,可能在Virtual Generated Column上建立索引更加合适。综上,一般情况下,都使用Virtual Generated Column,这也是MySQL默认的方式
假设有一个表,其中包含一个 date 类型的列 `SimpleDate` date
SimpleDate 是一个常用的查询字段,并需要对其执行日期函数,例如
此时的问题是 即使对 SimpleDate 建立索引,这个查询语句也无法使用,因为日期函数阻止了索引。
为了提高查询效率,通常要进行额外的操作,例如新建一个字段 SimpleDate_dayofweek,存放 dayofweek(SimpleDate) 的计算结果,然后对这列创建索引,SimpleDate_dayofweek 的值需要程序写入,例如使用触发器,在 SimpleDate 有变动时更新这样查询就可以改为
这么做的好处是提高了查询性能,可以使用 SimpleDate_dayofweek 列的索引了,但又带来了其他麻烦,例如
虚拟列 Generated Columns 就是用来解决这个问题的,可以增加一个可被索引的列,但实际上并不存在于数据表中,下面用一个实验来说明下:
需求:为了实现对json数据中部分数据的索引查询,考虑用MySQL5.7中的虚拟列功能
1、创建表
2、准备数据
3、构建姓名的虚拟列
4、构建索引
5、测试是否用到索引
可以看出用了索引了
6、插入新数据
此时的表的结构由于多出了user_name这一虚拟列,再插入别的数据要注意在表后指明插入列(不能给虚拟列插入数据)
做完发现这个实验好像不是那么好理解...应该对比一下加不加虚拟列有没走索引,可能会更容易让大家理解的...后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流