
mysql
Captain2200
这个作者很懒,什么都没留下…
展开
-
mysql虚拟列(Generated Columns)及JSON字段类型的使用
mysql 5.7中有很多新的特性,但平时可能很少用到,这里列举2个实用的功能:虚拟列及json字段类型一、先创建一个测试表: 1 2 3 4 5 6 7 8 9 droptableif exists t_people; CREATETABLEt_people( `id`INT(11)NOTNULLAUTO_INCREMENT, `name`va...转载 2020-10-22 22:19:19 · 1024 阅读 · 0 评论 -
MySQL事务隔离级别的实现原理
回顾在MySQL的众多存储引擎中,只有InnoDB支持事务,所有这里说的事务隔离级别指的是InnoDB下的事务隔离级别。读未提交:一个事务可以读取到另一个事务未提交的修改。这会带来脏读、幻读、不可重复读问题。(基本没用)读已提交:一个事务只能读取另一个事务已经提交的修改。其避免了脏读,但仍然存在不可重复读和幻读问题。可重复读:同一个事务中多次读取相同的数据返回的结果是一样的。其避免...原创 2020-02-21 11:29:44 · 379 阅读 · 0 评论 -
MySQL之use index()查询
转载自https://blog.youkuaiyun.com/java852987/article/details/83541311语法:SELECT ... FROM TABLE [ {USE|IGNORE|FORCE} INDEX (key_list)] WHERE ...1USE INDEX用来提供你希望MySQL去参考的索引列表,就可以让MySQL不再考虑使用其他可用的索引。INGN...转载 2019-04-18 17:32:42 · 597 阅读 · 0 评论 -
MySQL中join的用法
转载自 https://www.cnblogs.com/beili/p/9140019.html近期用phpcms v9做项目,初期没有问题,后期随着数据量的增大,phpcms v9后台出现的栏目更新不动的情况,初期我以为是程序的问题,进行了程序排查,没有发现任何问题,登录上centos服务器后free命令发现内存也没有满。瞬间感觉很蛋疼,不知如何处理,后来登录阿里云账号,发现更新栏目时,cp...转载 2018-11-08 15:17:49 · 2331 阅读 · 0 评论 -
深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接
转载自 http://www.jb51.net/article/39432.htm1、内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。 2、外联接。外联接可以是左向外联接、右向外联接...转载 2018-09-04 22:42:57 · 720 阅读 · 0 评论 -
mysql的水平分表和垂直分表的区别
转载自 https://www.2cto.com/database/201709/676637.html1,水平分割:例:QQ的登录表。假设QQ的用户有100亿,如果只有一张表,每个用户登录的时候数据库都要从这100亿中查找,会很慢很慢。如果将这一张表分成100份,每张表有1亿条,就小了很多,比如qq0,qq1,qq1...qq99表。用户登录的时候,可以将用户的id%100,那么会...转载 2018-08-23 10:22:40 · 19636 阅读 · 8 评论 -
MySQL锁详解
转载自http://www.cnblogs.com/luyucheng/p/6297752.html一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太...转载 2018-08-19 16:30:38 · 320 阅读 · 0 评论 -
mysql explain用法和结果的含义
转载自https://www.cnblogs.com/yycc/p/7338894.html转自:http://blog.chinaunix.net/uid-540802-id-3419311.html explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。使用方法,在select语句前加上explain就可以了:...转载 2018-08-19 16:20:06 · 232 阅读 · 0 评论 -
MySQL索引类型
转载自http://www.cnblogs.com/luyucheng/p/6289714.html一、简介MySQL目前主要有以下几种索引类型:1.普通索引2.唯一索引3.主键索引4.组合索引5.全文索引二、语句CREATE TABLE table_name[col_name data type][unique|fulltext][index|key][index_...转载 2018-08-19 16:18:57 · 374 阅读 · 0 评论 -
MySQL配置优化
转载自http://www.cnblogs.com/luyucheng/p/6340076.html一、全局配置(1)max_connections最大连接数。默认值是151,最多2000。如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量。但是如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值。查看最大连接数mysq...转载 2018-08-19 11:55:15 · 1349 阅读 · 0 评论 -
MySQL优化
转载自http://www.cnblogs.com/luyucheng/p/6323477.html一、SQL语句优化(1)使用limit对查询结果的记录进行限定(2)避免select *,将需要查找的字段列出来(3)使用连接(join)来代替子查询(4)拆分大的delete或insert语句二、选择合适的数据类型(1)使用可存下数据的最小的数据类型,整型 < date...转载 2018-08-19 11:43:31 · 232 阅读 · 0 评论 -
MySQL中的索引详讲
转载自 https://www.cnblogs.com/whgk/p/6179612.html序言 之前写到MySQL对表的增删改查(查询最为重要)后,就感觉MySQL就差不多学完了,没有想继续学下去的心态了,原因可能是由于别人的影响,觉得对于MySQL来说,知道了一些复杂的查询,就够了,但是我认为,不管有没有用,现在学着不懂的东西,说明就是自己薄弱的地方,多学才能比别人更...转载 2018-08-19 11:42:37 · 273 阅读 · 0 评论 -
MySQL慢查询(一) - 开启慢查询
转载自https://www.cnblogs.com/luyucheng/p/6265594.html一、简介开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。二、参数说明slow_query_log 慢查询开启状态slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可...转载 2018-08-19 11:37:26 · 2997 阅读 · 0 评论 -
mysql时间与字符串相互转换
转载自 https://www.cnblogs.com/wangyongwen/p/6265126.html时间、字符串、时间戳之间的互相转换很常用,但是几乎每次使用时候都喜欢去搜索一下用法;本文整理一下三者之间的 转换(即:date转字符串、date转时间戳、字符串转date、字符串转时间戳、时间戳转date,时间戳转字符串)用法,方便日后学习和查阅;涉及的函数date_format...转载 2018-08-13 10:09:44 · 2711 阅读 · 0 评论 -
sql优化的几种方法
在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些方法,有需要的可以参考参考。1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where ...原创 2018-07-05 10:22:11 · 171 阅读 · 0 评论 -
步步深入:MySQL架构总览->查询执行流程->SQL解析顺序
转载自 https://www.cnblogs.com/annsshadow/p/5037667.html前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了。 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识。 一、MySQL架构总览: 架构最好看图,再配上必要的说明文字。 ...转载 2018-07-05 10:20:43 · 285 阅读 · 0 评论 -
【MySQL性能优化】MySQL分库分表与水平分割取模案例(三)
转载自 http://chenhaoxiang.cn/2018/02/05/2316/分表分库当项目比较大的时候,基本上都会进行分表分库的后面就讲讲什么时候需要分库,什么时候需要分表什么时候需要分库垂直分割垂直拆分就是要把表按模块划分到不同数据库表中(当然原则还是不破坏第三范式),这种拆分在大型网站的演变过程中是很常见的。当一个网站还在很小的时候,只有小量的人来开发和维护,各模块和表都在一起,当网...转载 2018-06-27 17:11:25 · 812 阅读 · 0 评论 -
【MySQL性能优化】数据库设计三大范式(二)
转载自http://chenhaoxiang.cn/2018/02/04/2158/数据库设计无非遵循的就是减少冗余量,第二点就是遵循三范式第一范式(1NF)确保每一列的原子性也就是如果每一列都满足是不可再分的最小数据单元,则满足第一范式比如id name sex address1 chx 0 湖南长沙在这里,其实地址这个字段是可以再拆分的,拆分成省份,市区。但是,在有的场景下,也可以不分。需要根...转载 2018-06-27 17:10:46 · 326 阅读 · 0 评论 -
【MySQL性能优化】概述与优化方面(一)
转载自 http://chenhaoxiang.cn/2018/02/04/1758/像sql语句如何进行调优,基本上在中高级程序员面试中都有可能会被问到。所以说,了解,或者学习一下如何进行sql调优是必要的。我会关于该sql调优文章出一个系列的博客。与大家一起学下去首先不具体进行介绍,先大体的概括一下,因为答案基本是死的,但是处理方式是活的MySQL性能优化/概述1.数据库的设计目前只要知道三范...转载 2018-06-27 17:10:02 · 190 阅读 · 0 评论 -
数据库四种设计模式
转载自 https://blog.youkuaiyun.com/hhuahualala/article/details/51589133数据库设计四种主要设计模式的一般使用原则1.主扩展模式主扩展模式通常用来将几个相似的对象的共有属性抽取出来,形成一个”公共属性表“,且“公共属性表”与“专有属性表”是“一对一”的关系。 “专有属性表”可以看做是“公共属性表”的 扩展,两者合在一起就是对一个特定对象的完整描述,...转载 2018-06-25 16:48:16 · 650 阅读 · 0 评论 -
win10安装 MySQL安装教程
转载自 https://blog.youkuaiyun.com/zhouzezhou/article/details/52446608环境:windwos 10(1511) 64bit、mysql 5.7.14时间:2016年9月5日一、下载mysql1. 在浏览器里打开mysql的官网http://www.mysql.com/2. 进入页面顶部的"Downloads"3. 打开页面底部的“Community...转载 2018-06-19 14:26:40 · 835 阅读 · 1 评论 -
MySQL + springboot修改时区的方法小结
说明:这里总结记录修改mysql时区的三种方法。方法一:通过mysql命令行模式下动态修改1.1 查看mysql当前时间,当前时区?123456789101112131415> select curtime(); #或select now()也可以+-----------+| curtime() |+-----------+| 15:18:10 |+-----------+> sho...原创 2018-05-16 10:07:30 · 14392 阅读 · 0 评论 -
MySQL的学习--触发器
转载自https://www.cnblogs.com/CraryPrimitiveMan/p/4206942.htmlMySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。创建触发器在MySQL中,创建触发器语法如下:CREATE TRIGGER trigger_nametrigger_timet...转载 2018-05-09 10:23:43 · 207 阅读 · 0 评论 -
Mysql中的自定义函数和自定义过程
转载自 http://www.cnblogs.com/lyhabc/p/3793524.html转载地址:http://www.cnblogs.com/lyhabc/p/3793524.htmlMYSQL中创建存储过程和函数分别使用CREATE PROCEDURE和CREATE FUNCTION使用CALL语句来调用存储过程,存储过程也可以调用其他存储过程函数可以从语句外调用,能返回标量值创建存储...转载 2018-05-08 18:34:11 · 3323 阅读 · 0 评论 -
Mysql| Mysql函数,聚集函数的介绍与使用(Lower,Date,Mod,AVG,...)
转载自https://blog.youkuaiyun.com/u011479200/article/details/78633382关于MYSQL的函数函数没有通用的SQL语句的可移植性强 能运行在多个系统上的代码称为可移植的( portable)。相对来说,多数SQL语句是可移植的,在SQL实现之间有差异时,这些差异通常不那么难处理。而函数的可移植性却不强。几乎每种主要的DBMS的实现都支持其他实现不支持的...原创 2018-05-08 18:25:34 · 586 阅读 · 0 评论 -
mysql 函数substring_index()
转载自 https://www.cnblogs.com/lijiageng/p/6511334.html函数: 1、从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my_content_t 2、从右开始截取字符串 right(str, length) 说明:ri...转载 2018-04-25 18:00:31 · 969 阅读 · 0 评论 -
MySQL的or/in/union与索引优化
假设订单业务表结构为:order(oid, date, uid, status, money, time, …)其中:oid,订单ID,主键date,下单日期,有普通索引,管理后台经常按照date查询uid,用户ID,有普通索引,用户查询自己订单status,订单状态,有普通索引,管理后台经常按照status查询money/time,订单金额/时间,被查询字段,无索引…假设订单有三种状态:0已下单...原创 2018-04-04 15:08:29 · 298 阅读 · 0 评论 -
mysql优化学习笔记
优化sql的一般步骤通过show status了解各种sql的执行频率定位执行效率低的sql语句通过explain分析效率低的sql通过show profile分析sql通过trace分析优化器如何选择执行计划确定问题,采取措施优化索引优化措施mysql中使用索引的典型场景匹配全值,条件所有列都在索引中而且是等值匹配匹配值的范围查找,字段必须在索引中匹配最左前缀,复合索引只会根据最左列进行查找仅仅...原创 2018-04-04 15:07:23 · 224 阅读 · 0 评论 -
mysql分析sql语句基础工具 —— explain
转载自 https://segmentfault.com/a/1190000009724144 立即登录[笔记] mysql分析sql语句基础工具 —— explain mysql waterandair 2017年06月18日发布赞 | 0收藏 | 6402 次浏览分析sql语句 explainexplain (sql语句) G;分析结果:id sql语句编号如果是连接查询,表之间是平...转载 2018-04-04 15:06:47 · 2043 阅读 · 0 评论 -
MySQL InnoDB索引介绍及优化
转载自 https://segmentfault.com/a/1190000007445807 一、索引概念索引(index)翻译为一个目录,用于快速定位我们想要找的数据的位置。例如:我们把一个数据库比作一本书,而索引(index)就是书中的目录,此刻要找到书的某个感兴趣的内容,我们一般是不会整本书翻完再去确认该内容在哪里,而是通过书的目录,定位到该内容章节所在页数,最后直接翻到该页面我们来看看在...转载 2018-04-04 15:03:04 · 977 阅读 · 0 评论 -
MyISAM 和InnoDB 的区别.(存储,索引, 事务, 锁)
转载自 https://www.cnblogs.com/bincoding/p/5895706.html MyISAM类型的表强调的是性能,但是不支持事务、及外部键等高级功能。MySQL默认采用的是MyISAM。MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把多条SQL语句显示...原创 2018-04-04 14:45:42 · 259 阅读 · 0 评论 -
Mysql常用30种SQL查询语句优化方法
1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以...原创 2018-03-23 14:37:23 · 233 阅读 · 0 评论 -
MySQL(九)插入、更新和删除
常用的SQL语句,除了select用于查询,还有insert、update、delete等。 一、insertinsert:用来插入(或添加)行到数据库中,常见方式有以下几种:①插入完整的行;②插入行的一部分;③插入多行;④插入某些查询的结果;1、插入完整的行例如:insert into usertable values(null, 'zhangsan', '25...原创 2018-03-23 14:30:21 · 173 阅读 · 0 评论 -
MySQL(十)操纵表及全文本搜索
一、创建表MySQL不仅用于表数据操作,还可以用来执行数据库和表的所有操作,包括表本身的创建和处理。创建表一般有如下两种方式:①使用具有交互式创建和管理表的工具;②直接使用MySQL语句操纵表;1、表创建基础使用程序创建表,可使用SQL中的create table语句,需要以下两个信息:①新表的名字,在关键字create table后给出;②表列的名字和定义,用逗号分隔;例如:create tab...原创 2018-03-23 14:30:17 · 344 阅读 · 0 评论 -
MySQL(十一)视图及存储过程
一、视图视图是虚拟的表,它只包含使用时动态检索数据的查询。1、使用视图的好处①重用SQL语句;②简化复杂的SQL操作(可以方便的重用它而不必知道它的基本查询细节);③使用表的组成部分而不是整个表;④保护数据(可以给用户授予表的部分访问权限而不是整个表的访问权限);⑤更改数据格式和表示(视图可返回与底层表的表示和格式不同的数据)。PS:因为视图不包含数据,所以每次使用视图,都必须处理执行所需的任何一...原创 2018-03-23 14:30:13 · 286 阅读 · 0 评论 -
MySQLdump常用命令
MySQLdump常用mysqldump -u root -p --databases 数据库1 数据库2 > xxx.sql还原:系统命令行: MySQL -uroot -p123456 <f:\all.sql常见选项:--all-databases, -A: 备份所有数据库--databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数作为数...原创 2018-03-23 13:48:27 · 236 阅读 · 0 评论 -
mysql max_allowed_packet查询和修改
http://www.2cto.com/database/201303/195830.htmlmysql根据配置文件会限制server接受的数据包大小。有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。查看目前配置 show VARIABLES like '%max_allowed_packet%';显示的结果为: +--------------------+-...原创 2018-03-23 11:58:27 · 960 阅读 · 0 评论 -
MySQL中show语法
1. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称。 2. show databases; -- 显示mysql中所有数据库的名称。 3. show columns from table_name from database_name; 或show columns from database_name.table_nam...原创 2018-03-23 11:45:09 · 951 阅读 · 0 评论 -
MySQL最大连接数设置
在使用MySQL数据库的时候,经常会遇到这么一个问题,就是“Can not connect to MySQL server. Too many connections”-mysql 1040错误,这是因为访问MySQL且还未释放的连接数目已经达到MySQL的上限。通常,mysql的最大连接数默认是100, 最大可以达到16384。 在Windows下常用的有两种方式修改最大连接数。...原创 2018-03-23 11:44:23 · 805 阅读 · 0 评论 -
MySQL(八)子查询和分组查询
一、子查询1、子查询(subquery):嵌套在其他查询中的查询。例如:select user_id from usertable where mobile_no in (select mobile_no from mobile where mobile_id = '10086');这条SQL语句中,括号内为从mobile表汇总检索mobile_id为10086的所有行中的mobile_no列,括...原创 2018-03-22 15:32:34 · 539 阅读 · 0 评论