mysql
o王o
....
展开
-
Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'inform
Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; thi原创 2017-03-20 13:18:49 · 15443 阅读 · 0 评论 -
高性能mysql-第五章索引(3)
EXPLAIN 出来的type列值为type列的值位index 说明mySQL使用了索引扫描来排序。使用索引排序要满足最左前缀要求。或者签到列为常量eg: SELECT rental_id,staff_id FROM renttal WHERE rental_date =’2015-8-8’ ORDER BY inventory_id ,customer_id 其中有索引 rental原创 2017-09-13 22:45:18 · 221 阅读 · 0 评论 -
sql 我没用过的写法~
查询总数 SELECT SUM (app_id = 101),COUNT(*) FROM account; COUNT(*) 表示总数,SUM(app_id =101) 表示 where app_id=101 的总数Innodb修改主键自增值,可以直接用AUTO_INCREMENT =1 不会对数据有影响。 ALTER TABLE account AUTO_INCREMENT=1;innod原创 2017-09-21 11:21:04 · 226 阅读 · 0 评论 -
第六章静态查询分析:使用自定义的变量
使用自定义的变量: 缺点:使用自定义变量的查询,不能使用查询缓存。生命周期在一个连接中有效,不能用他们来做连接间的通信如果使用连接池会有变量污染的情况自定义变量在 mysql 5.0之前是 大小写敏感,版本问题,以及代码问题不能显式的声明自定义变量,定义的时候 如果 整数类型就赋值为 0,浮点型 0.0 ,字符型 ‘’:= 优先级很低,在与其他sql 同个连接中执行时最好加 (原创 2017-12-19 19:49:20 · 231 阅读 · 0 评论 -
高性能MYSQL ------- 查询阻塞语句以及锁
MYSQL 服务器逻辑架构图连接/线程处理 == 》 (解析器 –> 查询缓存) ===》 优化器 ===》 存储引擎高性能MYSQL ——- 锁的调试:服务器级别锁MYSQL 使用的锁类型: 表锁(显式:LOCK TABLE,隐式) 全局锁(read_only=1,FLUSH TABLE WITH READ LOCK) 命名锁 :服务器重命名或者删除一原创 2017-12-20 15:36:33 · 9403 阅读 · 0 评论 -
高性能MYSQL——6章查询执行的基础(1)
排序优化 mysql 排序很消耗性能。排序时会对每一个排序记录分配一个足够长的定长空间来存放,vachar 分配 3个字节除非查询的所有列都来自一个表,否则都会使用到临时表。 5.6以后,mysql进行了很多改进,当只需返回部分排序结果的时候,例如有limit,mysql不再对所有结果排序,而是根据实际情况,抛弃不满足条件的结果。关联子查询优化SELECT * FROM原创 2017-11-04 15:57:19 · 414 阅读 · 0 评论 -
MYSQL创建表,字段用双引号时报错
MYSQL创建表,字段双引号无法执行解决办法 在mysql 5.7的部分版本。双引号执行创建表的sql语句会报错, 双引号是一般其他数据库中正常的使用方法,但是在mysql中有点版本不是特别严格,可以使用单引号来执行sql,在我5.7.20这个版本的mysql中我执行带双引号的sql创建语句无法执行。*同样在5.7.13这个版本是可以执行*,然后我专门查了下创建表的格式,里面就是用双引号来原创 2018-01-30 17:39:01 · 6205 阅读 · 2 评论 -
Got an error reading communication packets
因为中间出来了一个未知的数据库,unconnected 这个数据库不存在,导致连接包信息错误。报这个错。show global status like ‘abort%’; Aborted_clients 和 Aborted_connects是否是变动剧烈。 对于Aborted_connects错误的大概原因有:客户端连接一个没有授权的数据库、密码错误、连接包信息错误、连接超时(默认10s)原创 2018-01-24 14:54:05 · 14460 阅读 · 0 评论 -
mysql查询 EXPLAIN 简单解释
慢查询:确认应用程序是否检索了大量超过需求的数据,访问了太多的行或者列是否分析了超过需求的行或者列EXPLAIN type 字段解释参与连接运算的表是内表 CONST where 条件筛选至多有一条匹配时 EQ_REF 基于索引做扫描、连接字段为唯一索引或主键索引、索引值不为Null、操作符为 = 使得对外表的一条元原创 2017-09-25 17:54:53 · 277 阅读 · 0 评论 -
sql 我没用过的写法~
查询总数SELECT SUM (app_id = 101),COUNT(*) FROM account;COUNT(*) 表示总数,SUM(app_id =101) 表示 where app_id=101 的总数原创 2017-09-11 21:41:05 · 188 阅读 · 0 评论 -
mysqlnd是什么
什么是mysqlnd?mysqldnd(MySQL native driver)是由PHP源码提供的mysql驱动连接代码。它的目的是代替旧的libmysql驱动。传统的安装php的方式中,我们在编译PHP时,一般指定以下几项:--with-mysql=/usr/local/mysql \--with-mysqli=/usr/local/mysql/bin/mysql_confi转载 2017-05-03 11:02:01 · 3301 阅读 · 0 评论 -
大量插入数据时关闭主键唯一性检测
我们想实现的效果是:合并数据库的说话,如果出现主键重复的情况,首先不报错。如果可以,则两条数据都保留,更新其中的一条数据,然后使数据不唯一。思路一:mysql插入数据时可以关闭主键唯一检测,关闭检测,等数据库合并完成,用脚本或者手动修改主键重复的值(数据量比较小时)。(此方法测试了不成功,参照下文做的,mysql版本 5.7.0) 1) 对于Myisam类型的表,可以通过以下方原创 2017-05-03 16:18:03 · 5119 阅读 · 0 评论 -
mysql replace into 与 insert update
replace into 与 insert update 功能类似总结下:replace into 是根据表中的唯一索引或主键来判断是否重复的。如果没有则replace into不起作用直接插入。replace into如果遇到重复的值,会先把之前的数据删除,并且重新插入一条新的数据。效率可能不高replace into的时候会删除老记录。所以其他表中所有与本表老数据主原创 2017-06-12 18:35:55 · 826 阅读 · 0 评论 -
mysql json类型操作
基于 mysql 5.7官方文档:点击打开链接插入 JSON INSERT INTO `lnmp` (category, tags) VALUES ('{"id": 1, "name": "lnmp.cn"}', '[1, 2, 3]');更新 JSONJSON_INSERT()插入新值,但不会覆盖已经存在的值J原创 2017-06-12 22:15:17 · 1781 阅读 · 0 评论 -
高性能MYsql读书笔记-加快alter table操作的速度
高性能MYsql读书笔记-加快alter table操作的速度alte tabe 会导致事务中断。ALTER TABLE [ ALTER COLUMN / MODIFY COLUMN / CHANGE COLUMN ]ALTER TABLE sakila.film MODIFY COLUMN rental_duration TINYINT(3) NOT NULL DEFAULT 5;SHOW STATUS;原创 2017-08-17 22:38:46 · 381 阅读 · 0 评论 -
linux性能分析命令ps,top,vmstat 使用
ps*语法:ps [options] 注意:该命令查看的是某一时刻的瞬间进程运行的状态,非连续查看 支持三种选项: UNIX选项如-a(选项前加-) BSD选项如a 默认显示当前终端中的进程 a选项包括所有终端中的进程 x选项包括不连接终端的进程(TTY的状态为?的进程) u选项显示进程所有者的信息 f选项显示进程的父进程 o属性… 选项显示定制的信息: pid、comm、%c转载 2017-09-23 10:34:40 · 787 阅读 · 0 评论 -
高性能MYSQL---索引读书笔记
高性能MYSQL---索引读书笔记B+Tree 每一个叶子节点都包含指向下一个叶子节点的指针。B-Tree MYSIAM, 使用前缀压缩技术使得数据更小,INNODB则按照原数据格式进行存储。每一个叶子节点到根节点的距离相同哈希索引,每一列生成唯一哈希索引。在哈希表中保存每个数据行的指针MYSQL memory,支持哈希索引哈希索引,只包含哈希值,不存储字段,所以不能使用索引中的值来避免读取原创 2017-09-07 22:30:42 · 411 阅读 · 0 评论 -
mysql聚簇索引和非聚簇索引以及二级索引
mysql聚簇索引和非聚簇索引以及二级索引innodb的聚簇索引实际上是在同一个结构中保存了btree索引和数据行。INNODB通过主键列来索引数据。没有定义,INNODB会选择一个唯一的非空索引列代替。如果没有这样的索引,会选择第一个非空的唯一索引代转载 2017-09-12 11:16:46 · 3657 阅读 · 0 评论 -
Syntax error or access violation: 1071 Specified key was too long; max ke y length is 767 bytes
报错原因: MySQL的varchar主键只支持不超过768个字节 或者 768/2=384个双字节 或者 768/3=256个三字节的字段 GBK是双字节的,UTF-8是三字节的关于mysql 字符集...原创 2018-05-23 11:23:58 · 836 阅读 · 0 评论