-----MySQL
星辰_mya
好好学习,天天向上
展开
-
ERROR 1062 (23000): Duplicate entry
像我这种比较 silly的,刚添加了一个字段,转眼就把他置为唯一索引,此时表里面是有数据,表里面有数据,新增的这一列相当于有很多同样的值,这种情况下自然是不能建唯一索引原创 2022-12-23 11:04:23 · 606 阅读 · 1 评论 -
mysql 对int进行模糊查询
首先 模糊查询 不提倡 不推荐 不评价你要是用,我搜集了两种方式SELECT * FROM test WHERE CAST(id as CHAR) LIKE '%14%';SELECT * FROM test WHERE CONVERT(id, CHAR) LIKE '%157%';原创 2022-02-17 21:53:29 · 1714 阅读 · 3 评论 -
mysql基础知识补充
关于distinct 是特殊的group by,在8.0之前group by会对结果集排序,distinct不会原创 2020-02-15 13:37:43 · 218 阅读 · 0 评论 -
【高性能MySQL】第六章查询性能优化 查询优化
6.4.3查询优化处理查询的生命周期下一步:将一个SQL转换成一个执行计划,MySQL再依照这个执行计划和存储引擎进行交互:解析SQL、预处理、优化SQL执行计划语法解析器和预处理通过关键字将SQL语句进行解析: 解析器将使用MySQL语法规范验证解析查询,生成解析树,预处理器据规则检查解析树是否合法查询优化器优化器将语法树从众多执行方...原创 2018-08-13 09:52:13 · 476 阅读 · 0 评论 -
【高性能MySQL】第5章创建高性能的索引
前言:索引key是存储引擎用于快速找到记录的一种数据结构;本章将讨论索引一些有用属性;恰当的索引对良好的性能非常关键,特别是数据量越来越大时,索引优化是对查询性能优化最有效的手段;正文:5.1索引基础存储引擎使用索引:1、在索引中找到对应值,2、据匹配的索引记录找到对应数据行索引可包含一或多个列的值,如果索引包含多个列,列的顺序很重要(最左前缀),索引对多个值排序依据的是cre...原创 2018-08-07 23:06:16 · 263 阅读 · 0 评论 -
【MySQL优化】show processlist命令详解+常用计数器
来自:https://blog.csdn.net/sunqingzhong44/article/details/70570728 https://blog.csdn.net/ocean73737/article/details/77648075show processlist命令详解SHOW PROCESSLIST显示哪些线程正在运行不在mysql提示符下使用...转载 2018-08-03 10:17:40 · 3082 阅读 · 0 评论 -
【高性能MySQL】第六章查询性能优化
前言:从查询设计的一些基本原则开始,介绍一些更深的查询优化技巧,会介绍一些mysql优化器内部的机制;展示MySQL如何执行查询、*也将学会如何改变查询的执行计划,最后看优化器哪些方面做得不够好,探索查询优化模式目标:帮助大家更深刻理解MySQL如何真正地执行查询,且明白高效低效的原因何在 6.1 为什么查询速度会慢查询生命周期: 客户端、服务器、服务器解析、生成执行...原创 2018-08-13 09:51:57 · 274 阅读 · 0 评论 -
【高性能MySQL】第5章高性能的索引策略
5.4案例学习5.4.1支持多种过滤条件考虑表上all的选项,对查询优化:优化查询 索引中找平衡 建议将使用频率高的列作为前缀(即是选择性低)在查询是即使没该字段也要用上该字段尽可能将需要做范围查找的列放到索引的后面 不能滥用,降性能:in条件,优化器做的组合以指数形式增加,达到一定数量不再执行计划评估,索引不能很好被利用,耗内存缩进部分有个人理解,写的不对的...原创 2018-08-13 09:51:44 · 178 阅读 · 0 评论 -
【高性能MySQL】第5章高性能的索引策略
5.3.6覆盖索引覆盖索引:索引包含(覆盖)所有需要查询的字段的值,必须要存储索引列的值优点:减少数据访问量,提高性能,减少I/O限制:不是all类型的索引都可成为覆盖索引哈希、空间、全文索引不存储索引列的值 mysql只能用b-tree索引EXPLAIN的Extra列Using index :使用了覆盖索引前:后: 索引条件推送 mysql5.6...原创 2018-08-12 11:09:25 · 195 阅读 · 0 评论 -
【高性能MySQL】第7章MySQL高级特性 上 分区 视图
前言:mysql从5.0和5.1开始引入很多高级特性:分区 、触发器等,这些特性表现如何、带你去发现7.1分区表分区表是独立逻辑表,底层由多个物理子表组成底层文件系统看、分区表all有个#分隔命名的表文件对底层表的封装:索引也是按分区子表定义的,无全局索引实现分区的代码是一组底层表的句柄对象Handler Object的封装对分区表(可直接)请求:通过句柄转成存储引擎接...原创 2018-08-14 23:20:17 · 716 阅读 · 0 评论 -
【高性能MySQL】第四章Schema与数据类型优化(下)
4.2MySQL schema设计中的陷阱因为mysql实现机制导致了一些特定错误,如何避免,慢慢道来:1、太多的列MySQL存储引擎api工作时需要在服务器层和存储引擎层通过行缓冲格式拷贝数据,然后在服务器层将缓冲内容解码成各个列,从行缓冲中将编码过的列转换成行数据的操作代价高,myisam定长行与服务器行结构正好匹配,不需要转换;但是变长行结构 InnoDB的行结构总是需要转换,转...原创 2018-08-07 11:40:35 · 302 阅读 · 0 评论 -
【MySQL】 Innodb的表锁问题_auto_increment
定义:使用auto_increment的字段可能生成唯一的标识,mysql可以保证这个字段在多进程操作时的原子性;AUTO-INC锁是当向使用含有AUTO_INCREMENT列的表中插入数据时需要获取的一种特殊的表级锁;使用:可在建表时可用“AUTO_INCREMENT=n”选项来指定一个自增的初始值可用alter table table_name AUTO_INCREMENT...转载 2018-08-11 17:00:27 · 767 阅读 · 0 评论 -
【高性能MySQL】第三章服务器性能剖析 (上)
前言: 保持空杯精神,使用性能剖析,专注于测量服务器的时间花费在哪里,思考1、如何确认服务器是否达到了性能最佳状态,2、某条语句为什么不够快,诊断被用户描述为“停顿、堆积、卡死”的某些间歇性疑难故障; 接下来将介绍一些工具、技巧优化整机性能、优化单条语句执行速度,诊断 解决那些很难观察到的问题,展示如何测量系统并生成剖析报告、如何分析系统的堆栈; 3.1简介性能:为完...原创 2018-08-03 16:18:57 · 288 阅读 · 2 评论 -
【高性能MySQL】第六章查询性能优化 查询优化器局限
刚才误关了浏览器,啊~~~6.5MySQL查询优化器局限性6.5.1关联子查询where子查询实现的非常糟糕,最糟一类where包含in优化:exists等效改写: 或使用group_concat()在in中构造由逗号分隔的列表:【源】 GROUP_CONCAT()函数,主要用来处理一对多的查询结果,通常会结合GROUP BY一起使用GROUP_CON...原创 2018-08-13 09:51:26 · 295 阅读 · 0 评论 -
canal基于数据库的日志解析
阿里巴巴mysql数据库binlog的增量订阅&消费组件背景: 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。m...原创 2019-03-07 20:07:16 · 1074 阅读 · 1 评论 -
【高性能MySQL第3版】第8章 优化服务器设置 下(小半)停
8.5.2 MyISAM的i/o配置myisam每次写操作后便把索引变更刷新磁盘1、使用lock table 延迟写入直到解锁这些表,精确控制哪些写被延迟,何时2、delay_key_write也可延迟索引写入,修改的键缓冲块直到表被关闭才刷新 off:每次写操作后刷新键缓冲中的脏块到磁盘,除非lock tables锁定了 on:打开延迟键写入,只对用delay...原创 2018-08-25 13:13:16 · 166 阅读 · 0 评论 -
【高性能MySQL第3版】第8章 优化服务器设置 innodb I/O配置
前言: 这本的标题起的真好正文:8.5配置mysql的I/O行为性能和数据安全间的较量8.5.1InnoDB I/O配置控制怎么恢复(启动时自动ing)、打开和刷新数据InnoDB事务日志: innodb变更任何数据时,会写条变更记录到内存日志缓存区;缓存满时 事务提交时 或每一s innodb都会刷写缓存区内容到磁盘日志文件 日志条目紧凑...原创 2018-08-21 23:16:11 · 555 阅读 · 0 评论 -
InnoDB Redo Flush及脏页刷新机制深入分析
前言: InnoDB采用Write Ahead Log策略来防止宕机数据丢失,即事务提交时,先写重做日志,再修改内存数据页,这样就产生了脏页;服务器内存有限,缓冲池不够用,无法缓存全部数据 重做日志无限增大成本要求太高 宕机时如果重做全部日志恢复时间过长当数据库宕机时,只需执行上次刷入点Checkpoint后的日志:缩短数据库恢复时间 缓冲池不够用时,将脏页刷新到磁...转载 2018-08-21 22:12:36 · 607 阅读 · 0 评论 -
【高性能MySQL第3版】第8章 优化服务器设置 中上
8.4配置内存使用内存消耗:控制内存和不可控内存配置内存步骤:确定可使用内存上限 确定每个连接MySQL需要使用多少内存:排序缓冲和临时表 确定操作系统需要多少内存:包其他程序使用的内存 剩下的内存给mysql缓冲 8.4.1mysql可使用多少内存1、机器上安装了多少物理内存2、考虑系统或架构的限制: mysql单进程多线程,受系统限制:32位linux...原创 2018-08-19 23:44:12 · 202 阅读 · 0 评论 -
【高性能MySQL第3版】第8章 优化服务器设置
前言:解释为mysql服务器创建一个靠谱的配置文件的过程,创建好配置的最快的方法是从理解mysql内核和行为开始,可利用这些知识知道配置mysql,最后将想要配置和当前配置比较,纠正重要且有价值的不同之处;通常只需把基本项配置正确、更多时间放在schema优化、索引及查询设计上 8.1mysql配置的工作原理配置机制:mysql从命令行和配置文件获得配置信息清楚知道配置文件...原创 2018-08-19 23:12:31 · 248 阅读 · 0 评论 -
高性能MySQL】第7章MySQL高级特性 下
7.10全文索引通过关键字匹配进行查询过滤,基于相似度的查询有自己独特的语法,没有索引可以工作,有了索引效率更高,全局搜索的索引有独特的结构;全文索引支持各种字符内容的搜索,也支持自然语言搜索和布尔搜索主讲MyISAM的全文索引: 作用对象时全文集合,具体的:对表某一条记录,mysql会将需要索引的列全部拼接成一个字符串,进行索引myisam是一类特殊的b-tree索引:...原创 2018-08-19 21:55:43 · 319 阅读 · 0 评论 -
【高性能MySQL】读书笔记
前言: 看这本书真的是受益匪浅,最近时间也是比较紧张,一章章地看过来,感觉还是自己私底下写写画画、吸收总结好了,写的太全、好吧、抄的太全反而是对大家来说是一种累赘,倒帮不了大家什么、不如倡导大家多去看书;真心推荐,下面是简要的几章内容,可能一些太简要了,还是多看书吧;第9章:MySQL需要的四种基本资源:cpu、内存、硬盘以及网络资源,倾向于很多快速的cpu合理做法:不要超过...原创 2018-08-26 17:59:06 · 299 阅读 · 0 评论 -
高性能MySQL】第7章MySQL高级特性 中
7.3外键约束有使用成本,修改时在另一张表中执行查找操作;加锁、慢如果确保两个相关表数据一致的话,使用外键比在应用程序汇总检查一致性性能更高 7.4MySQL内部存储代码通过触发器、存储过程、函数的形式存储代码,5.1开始,可在定时任务中存代码不同类型的存储代码区别:执行上下文(输入输出),存储过程/函数都可以接收参数然后返回值,但是触发器和事件却不行;优缺点:1、...原创 2018-08-19 19:20:42 · 272 阅读 · 0 评论 -
【高性能MySQL】第5章高性能的索引策略
5.3高性能的索引策略诶~这个标题?5.3.1独立的列索引列不是表达式的一部分也不是函数的参数养成简化where条件的习惯,将索引列单独放在比较符号的一侧5.3.2前缀索引和索引选择性1、索引很长可以截取部分字符(索引开始的部分字符),节省空间提高效率,但会降低选择性; 对于BLOB/TEXT或很长的VARCHAR列,必须使用前缀索引2、索引选择性:...原创 2018-08-11 15:16:56 · 214 阅读 · 0 评论 -
【MySQL】mysql 聚簇索引 和聚簇索引 (二级索引)的 那些事
原文:https://blog.csdn.net/bigtree_3721/article/details/51335479 mysql的聚簇索引是指innodb引擎的特性,mysiam并没有,如果需要该索引,只要将索引指定为主键(primary key)就可以了。比如:create table blog_user( user_Name char(15) not null ...转载 2018-08-11 11:51:21 · 532 阅读 · 2 评论 -
【MySQL】Sysbench 性能压测
合成自:http://linuxperformance.top/index.php/archives/83/ https://blog.csdn.net/notbaron/article/details/77413379 https://www.cnblogs.com/kismetv/archive/2017/09/30/7615738.html...转载 2018-08-02 11:48:25 · 11037 阅读 · 1 评论 -
必须得告诉大家的MySQL优化原理(上)
本来这篇的名字是:【高性能MySQL】第四章Schema与数据类型优化(下)但是看到这一篇大作,感觉自己读书真是太不认真了,想CHEN川大神学习,废不多话,转载开始:转自:https://www.jianshu.com/p/d7665192aaaf CHEN川 厉害的人总是那么多,为什么没有我,扪心自问、有答案了【衰】前言: 对应mysql查询优化比较常见的:不能使用...转载 2018-08-05 14:42:21 · 488 阅读 · 1 评论 -
【高性能MySQL】第四章Schema与数据类型优化(上)
前言: 高性能的基石:良好的逻辑、物理设计,根据系统要执行的查询语句设计schema 本章关注MySQL数据库设计,介绍mysql数据库设计与其他关系型数据库管理系统的区别schema:【源】 schema就是数据库对象的集合,这个集合包含了各种对象如:表、视图、存储过程、索引等。为了区分不同的集合,就需要给不同的集合起不同的名字,默认情况下一个用户对应一...原创 2018-08-04 14:15:16 · 516 阅读 · 1 评论 -
【高性能MySQL】第三章服务器性能剖析 (下)
容我感慨一下:DBA真的不是盖的 3.3.3使用性能剖析:有限 3.4诊断简歇性问题如系统偶尔停顿、慢查询、唤影问题,尽量不要使用试错的方式解决问题:风险大 3.4.1单条查询问题还是服务问题 使用SHOW GLOBAL STATUS较高频率:1s/次执行该命令铺获数据,问题出现通过计数器的 使用SHOW PROCESSLIST 【参考】显示哪...原创 2018-08-03 16:19:38 · 234 阅读 · 0 评论 -
【项目】建表语句
CREATE TABLE IF NOT EXISTS `t_beva_albums_`( `id` VARCHAR(255) COMMENT'专辑id', `name` VARCHAR(255) COMMENT'专辑名称', `album_type` VARCHAR(255) COMMENT'专辑类型,1表示普通专辑,2表示连续剧', `album_description`...原创 2018-07-04 08:50:22 · 238 阅读 · 1 评论 -
【mysql】字符集、字符序、分词查询
前言: 以下内容 毫不客气滴说:均来自网络 上面的三个词混着在正文中正文:Mysql5.6分词查询:和5.7稍微有些差别详情见:https://www.cnblogs.com/ibook360/p/5073313.html(其中例子执行的结果和文中不一样)查询关键字和查询列内容见相关度进行检索,可利用全文索引提高匹配速度 MATCH(col*) AGAINST(expr[search_...原创 2018-06-21 14:40:24 · 4675 阅读 · 55 评论 -
【mysql】数据类型
前言: 之前我设计数据库的时候设了一个时间戳类似的create_time字段,昨天王总知道这个字段之后告诉我说这个时间戳最大到2038年,有资料为证(特别耐心向我展示了网上查的资料),我没有看直接改了,态度特别好,下午回想这件事情上感觉基础还是挺重要的,所以先从mysql做起吧mysql数据类型: 这个图是盗过来的,感觉画得不错就直接上传了一下,欢迎去原作 访问...原创 2018-05-28 09:59:00 · 658 阅读 · 20 评论 -
在Linux上安装mysql
前言: 明霜说他们需要在Linux上面安装mysql,我根据我那浅薄的经验说:哦~安装挺简单的,你等我安装好了写一篇博客给你,从昨天到今天断断续续地开始了安装之路。正文: 还是知识不够,半瓶子晃荡,昨天弄了没有成功,根据网上的步骤坐着坐着就不一样了,好不容易下载的600M的包不能浪费,是不是?索性把版本号输上,百度一下:出来一篇,大概扫一下,挺详细的,最后成功的截图也有,版本也原创 2018-01-21 21:32:57 · 3709 阅读 · 71 评论 -
Mysql安装过程记录
时隔春秋,自重装了系统,便再次开始了与MySQL的较量,问题不断,下面来见一下吧下载MySQL5.7解压版压缩包,新建my.ini[mysqld]# 设置mysql的安装目录basedir=E:\mysql-5.7.20-winx64# 设置mysql数据库的数据的存放目录,必须是datadatadir=E:\mysql-5.7.20-winx64\data# mysql端口p原创 2017-11-28 19:56:32 · 265 阅读 · 26 评论 -
MYSQL:ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost——MySQL5.7修改密码
MySQL小巧灵活,算是比较受欢迎的一类数据库,做的项目也采用了MySQL,用到就要再电脑上装一个、是吧,要不对这个阶段的我来说就太low了,结果……说多了都是泪,安装了几次,都有问题,上网查说的差不多是一个意思,但是没有解决我的问题,这是几个意思?ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost这个错是出镜率原创 2017-01-20 11:24:24 · 17021 阅读 · 25 评论 -
myeclipse 与 MySQL的故事
今天上午和MySQL来了一场恶战,终于战胜了他,本以为就此世界和平了,但是下午打开eclipse配置数据库的时候,打不开了;重装的时候忘了建数据库了,所以打开Navicat,连接数Mysql提示密码过期,明明是刚设置的密码,我要疯了,这几天全在解决这些问题,好吧重新设置密码,还是老方法关闭原来的MySQL进程mysqld --skip-grant-tables这个时候,原创 2017-01-20 16:46:59 · 633 阅读 · 28 评论 -
必须得告诉大家的MySQL优化原理(中)
作者:CHEN川链接:https://www.jianshu.com/p/d7665192aaaf來源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。 性能优化建议有一句忠告要先送给你:不要听信你看到的关于优化的“绝对真理”,包括本文所讨论的内容,而应该是在实际的业务场景下通过测试来验证你关于执行计划以及响应时间的假设。Scheme设计与数据类...转载 2018-08-05 16:11:24 · 365 阅读 · 1 评论 -
必须得告诉大家的MySQL优化原理(下)
作者:CHEN川链接:https://www.jianshu.com/p/d7665192aaaf來源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。 特定类型查询优化优化COUNT()查询COUNT()可能是被大家误解最多的函数了,它有两种不同的作用,其一是统计某个列值的数量,其二是统计行数。统计列值时,要求列值是非空的,它不会统计NULL。如果确...转载 2018-08-05 16:40:50 · 419 阅读 · 3 评论 -
【高性能MySQL】第二章MySQL基准测试
前言: 基准测试benchmark:基本技能,是针对系统设计的一种压力测试,是唯一方便有效、可学习系统在给定的工作负载下回发生什么 的方法,他可以观察系统在不同压力下的行为,评估系统的容量,掌握哪些是重要的变化,或观察系统如何处理不同的数据,可在系统实际负载外创建虚拟场景进行测试(掌握系统行为) 正文:如前言,基准测试很、重、要!可以完成的工作: 总的来说:测试硬件、预...原创 2018-08-02 11:10:04 · 488 阅读 · 6 评论 -
【MySQL】我必须得告诉大家的MySQL优化原理3(下)INNODB配置
INNODB:使用最广的存储引擎innodb-buffer-pool-size如果大部分是InnoDB表,那么InnoDB缓冲池或许比其他任何东西都更需要内存,InnoDB缓冲池缓冲的数据:索引、行数据、自适应哈希索引、插入缓冲、锁以及其他内部数据结构。InnoDB还使用缓冲池来帮助延迟写入,这样就可以合并多个写入操作,然后一起顺序写入,提升性能。总之,InnoDB严重依赖缓冲池,必须为其...转载 2018-08-06 17:34:05 · 400 阅读 · 1 评论