
mysql基础
文章平均质量分 77
rudy_gao
这个作者很懒,什么都没留下…
展开
-
[MySQL] 分组排序取前N条记录以及生成自动数字序列,类似group by后 limit
前言: 同事的业务场景是,按照cid、author分组,再按照id倒叙,取出前2条记录出来。 oracle里面可以通过row_number() OVER (PARTITION BY cid,author ORDER BY id DESC) 表示根据cid,author分组,在分组内部根据id排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连转载 2015-07-08 11:05:08 · 999 阅读 · 0 评论 -
浅析电商、社区、游戏常用的 MySQL 架构
一般、或者必须是这样、MySQL 架构一定要结合业务来分析、设计、优化 所以不管是那种架构、根据业务要求组合成符合需求的即是最好的、不能泛泛而谈 同时、也必须注意数据的安全(如ipsec,ssh,vpn传输) 常见的架构都是进行业务切分、前端缓存、分库分表、若是过亿的查询量、 先从业务上拆分、将 bbs、web、blog 分成几个组、然后再做成一主多从转载 2015-08-18 09:49:46 · 912 阅读 · 0 评论 -
mysqld与mysqld_safe的区别
直接运行mysqld程序来启动MySQL服务的方法很少见,mysqld_safe脚本会在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启动它。用mysqld_safe脚本来启动MySQL服务器的做法在BSD风格的unix系统上很常见,非BSD风格的UNIX系统中的 mysql.server脚本其实也是调用mysqld_safe脚本去启动MySQL服务器的。它通常做如下事情:1.转载 2015-08-18 18:36:08 · 628 阅读 · 0 评论 -
mysql group_concat合并行用法和问题
还有分隔符还可以自定义,默认是以“,”作为分隔符,若要改为“|||”,则使用SEPARATOR来指定,例如:mysql> SELECT student_id, GROUP_CONCAT(courses_id SEPARATOR '|||') AS courses FROM student_courses WHERE student_id=2 GROUP BY student_id;转载 2015-10-10 17:06:00 · 1466 阅读 · 0 评论 -
Mysql中,int(10)和int(11)的区别
int(M) M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关首先说一下mysql的数值类型,MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。关键字INT是INTEGER的同义转载 2015-11-13 16:57:24 · 822 阅读 · 0 评论 -
mysql profile及其对应表使用
--mysql的profile可用于查看一个sql的具体消耗show profile all for query 1\G;--profiling has a default value of 0 (OFF)mysql> SELECT @@profiling;+-------------+| @@profiling |+-------------+| 0 |+-原创 2016-01-04 10:17:02 · 1181 阅读 · 0 评论 -
MYSQL general tablespace
--从mysql 5.7.6 开始其支持 general tablespace,其可以创建在一个相对路径或绝对路径上--A general tablespace is a shared tablespace, similar to the system tablespace. It can hold multiple tables,--and supports all table row fo原创 2016-01-04 10:17:57 · 1340 阅读 · 0 评论 -
show_compatibility_56
--从mysql5.7.6开始information_schema.global_status已经开始被舍弃,为了兼容性,此时需要打开 show_compatibility_56mysql> select * from information_schema.global_status limit 3;ERROR 3167 (HY000): The 'INFORMATION_SCHEMA.GLO原创 2015-12-25 14:41:54 · 13692 阅读 · 3 评论 -
mysql sql_mode 汇总整理
-- ANSI 使sql符合标准sqlThis mode changes syntax and behavior to conform more closely to standard SQL-- STRICT_TRANS_TABLES 如果事务语句有错,则使事务失败If a value could not be inserted as given into a transactiona原创 2016-01-26 16:29:06 · 722 阅读 · 0 评论 -
postgresql 聚合的暗坑
--对于聚合操作,pg约束是不严格的,比如如下sql中,group by 缺少 name,但也能执行postgres=# select id,name ,count(*) from t group by id; id | name | count ----+------+------- 1 | bcd | 1 2 | abc | 1 --现模拟如下原创 2016-01-27 14:51:58 · 7007 阅读 · 1 评论 -
xtrabackup备份方式搭建一个mysql slave
以前mysql搭建新备库都是在现在业务较小的备库上停止同步或停止数据库,然后拷贝数据库到新备库,配置好新备库后,再开启同步或数据库。然而,这次没有空闲备库用来搭新备库。需要从一个业务繁忙的数据库中搭建一个新备库,对系统延时要求比较高,所以同步和数据库都不能停。所以我们用了percona的 xtrabackup备份工具。因为这个备份要作为备库,所以用了–slave-info参数,备份完成后会转载 2015-07-24 15:59:28 · 1567 阅读 · 0 评论 -
MyISAM读写并发优化
MyISAM在读操作占主导的情况下是很高效的。可一旦出现大量的读写并发,同InnoDB相比,MyISAM的效率就会直线下降,而 且,MyISAM和InnoDB的数据存储方式也有显著不同:通常,在MyISAM里,新数据会被附加到数据文件的结尾,可如果时常做一些 UPDATE,DELETE操作之后,数据文件就不再是连续的,形象一点来说,就是数据文件里出现了很多洞洞,此时再插入新数据时,按缺省设置会先看转载 2015-07-24 14:44:02 · 742 阅读 · 0 评论 -
mysql的XA与innodb_support_xa
Mysql支持两种XA: 外部XA应用程序是协调者(coordinator),参数事务的服务器节点就是资源管理器(resource manager),目前存在两个问题:问题1:当参数分布式事务的协调者退出后,即使参与分布式事务的节点都已经PREPARE成功。从理论上说,这时这些分布式事务是悬挂事务,协调者恢复后可以进行最后的第二阶段提交。但是这在MySQL数据库中是转载 2015-08-14 09:19:07 · 1806 阅读 · 0 评论 -
MySQL 中文insert报错Incorrect string value: '\xCC\xEC\xB2\xC5'
序言:中文录入失败,报错:Incorrect string value: '\xCC\xEC\xB2\xC5',如下所示:mysql> set names utf8;Query OK, 0 rows affected (0.00 sec)mysql> insert into t select 2 as a ,'天才' as b;ERROR 1366 (HY000):转载 2015-07-07 16:16:53 · 1211 阅读 · 0 评论 -
MySQL多版本并发控制分析
背景:之前面试被问到这么一个问题,数据库两个transaction,当transaction1在update某一行的时候,transaction2在select的时候会不会block。我以前用MySQL做过测试,印象是可以,但是面试官提出质疑,今天我用MySQL验证这个问题的仔细研究了一下MySQL的后台实现,后来再网上发现了下面这篇文章非常就转过来,不过文中有些地方逻辑上好像不太对,我没转载 2015-07-28 18:51:07 · 501 阅读 · 0 评论 -
MySQL中行列转换的SQL技巧
行列转换常见场景由于很多业务表因为历史原因或者性能原因,都使用了违反第一范式的设计模式。即同一个列中存储了多个属性值(具体结构见下表)。 这种模式下,应用常常需要将这个列依据分隔符进行分割,并得到列转行的结果。表数据:IDValue1tiny,small,big2small,medium转载 2015-08-10 16:10:32 · 1867 阅读 · 0 评论 -
MySQL大数据量快速插入方法和语句优化
MySQL大数据量快速插入方法和语句优化是本文我们主要要介绍的内容,接下来我们就来一一介绍,希望能够对您有所收获!INSERT语句的速度插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例:连接:(3)发送查询给服务器:(2)分析查询:(2)插入记录:(1x记录大小)插入索引:(1x索引)关闭:(1)这不考虑打开表的初转载 2015-08-10 18:08:39 · 739 阅读 · 0 评论 -
MySQL5.6 GTID新特性实践
GTID简介什么是GTIDGTID(Global Transaction ID)是对于一个已提交事务的编号,并且是一个全局唯一的编号。GTID实际上是由UUID+TID组成的。其中UUID是一个MySQL实例的唯一标识。TID代表了该实例上已经提交的事务数量,并且随着事务提交单调递增。下面是一个GTID的具体形式3E11FA47-71CA-11E1-9E33-C80AA94转载 2015-08-10 10:36:54 · 731 阅读 · 0 评论 -
mysql性能监控指标及分析
1.系统mysql的进程数ps -ef | grep "mysql" | grep -v "grep" | wc –l2.Slave_runningmysql > show status like 'Slave_running';如果系统有一个从复***务器,这个值指明了从服务器的健康度3.Threads_connectedmysql > show转载 2015-07-30 15:42:23 · 1499 阅读 · 0 评论 -
sql_slave_skip_counter=N 做了些什么
之前一直以为我们设置sql_slave_skip_counter=1时我们是跳过当前事务复制出错的日志,看完淘宝丁奇大师的blog后 顿时明白了其真正含义,以下为转载丁奇blog: http://dinglin.iteye.com/blog/1236330背景知识1: 在主从库维护中,有时候需要跳过某个无法执行的命令,需要在slave处于stop状态下,执行 set gl转载 2015-08-13 19:14:40 · 535 阅读 · 0 评论 -
使用innotop监测mysql
一. 安装 INNOTOP是一个通过文本模式显示MySQL和InnoDB的监测工具。它有很多特点,快速的配置的,易于使用等。它吸取了MYTOP的精华这使 它变得更加强大。INNOTOP是用PERL语言写成的,这是它能更加灵活的使用在各种操作平台之上,它能详细的的监控出当前MYSQL和 INNODB运行的状态,以便维护人员根据结果合理的优化MYSQL,转载 2015-08-01 18:22:07 · 585 阅读 · 0 评论 -
mysql5.6新特性总结
一. server参数默认值设置的变化http://dev.mysql.com/doc/refman/5.6/en/server-default-changes.html二. innodb增强1.全文本搜索(full-text search)。2.支持online DDL。3.独立表空间的.ibd文件可以在建表时指定目录:http://dev.mysql.com/doc转载 2015-08-01 11:43:48 · 589 阅读 · 0 评论 -
mysql 权限与安全
--创建schemacreate schema rudy;--创建一个他人拥有的schemacreate schema rudy_schema authorization rudy;--在创建表时,如果没有指定模式则在默认为public模式create table rudy.t(id serial);--设置模式的搜索路径show search_path;set search_p原创 2016-01-11 17:27:59 · 1477 阅读 · 0 评论