
mysql
大树叶
宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒。
展开
-
MySqL (5.7 or above) only_full_group_by问题
MySql数据库报错如下:ERR-CODE: [TDDL-4614][ERR_EXECUTE_ON_MYSQL] Error occurs when execute on GROUP ‘SHEBAO_TAX_16237**************FARD_IN18_0000’ ATOM ‘rm-2ze5d6f76yg43c2m3__tax_yfpr_0000’: Expression #3 of SELECT list is not in GROUP BY clause and contains non原创 2021-08-10 16:05:11 · 2070 阅读 · 0 评论 -
SQL where 的元组使用
select * from verification_mark_results where (business_system_id,record_id) in ((12001,4780160),(12001,4780161));原创 2021-07-02 22:00:47 · 473 阅读 · 0 评论 -
MySQL cluster Replication 基本原理
1、复制进程Mysql的复制(replication)是一个异步的复制,从一个Mysql instace(称之为Master)复制到另一个Mysql instance(称之Slave)。实现整个复制操作主要由三个进程完成的,其中两个进程在Slave(Sql进程和IO进程),另外一个进程在 Master(IO进程)上。要实施复制,首先必须打开Master端的binary log(bin-lo转载 2016-03-17 10:16:06 · 1718 阅读 · 0 评论 -
MySQL Cluster(MySQL 集群) 实战
MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。在MyQL 5.0及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了该存储引擎。(注意,要想获得MySQL Cluster 的功能,必须安装 mysql-server 和 mysql-max RPM)。转载 2016-03-17 14:07:36 · 452 阅读 · 0 评论 -
MySQL Cluster简介和搭建例子
MySQL Cluster的组成有:1.MySQL Server2.NDB:管理数据storageNDB 节点被组织成一个一个的NDB Group,一个NDB Group 实际上就是一组存有完全相同的物理数据的NDB 节点群。管理节点中有一个非常重要的参数叫NoOfReplicas,这个参数指定了每一份数据被冗余存储在不同节点上面的份数,该参数一般至少应该被设置成2,3原创 2016-03-17 10:35:00 · 699 阅读 · 0 评论 -
mysql的grant权限
通过命令”show privileges;”可以查看grant 权限 on 数据库对象 to 用户一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。grant select on testdb.* to common_user@’%’grant insert on testdb.* to common_user@’%’gra转载 2016-03-17 16:37:51 · 569 阅读 · 0 评论 -
mysql cluster在线添加数据节点
增加或减少数据节点的数量和NoOfReplicas(即副本数,通过管理节点的config.ini配置文件来设置)有关,一般来说NoOfReplicas是2,那么增加或减少的数量也应该是成对的,否则要设置另外的NoOfReplicas。首先必须确保新加入的数据节点作为新的group加入,默认2个node为1个group,Group数量=Node总数/NoOfReplicas数。1.修改管理节转载 2016-03-18 12:54:09 · 1553 阅读 · 0 评论 -
MySQL Cluster 备份与恢复
1、在管理节点上进行备份。ndb_mgm> start backupndb_mgm> shutdownndb_mgm> exit2、删掉SQL节点的数据。 DROP DATABASE TEST_CLUSTER;3、关闭MYSQLD服务器。[root@localhost bin]# service mysqld stopShutting down MySQL...转载 2016-03-18 20:56:37 · 679 阅读 · 0 评论 -
主从 mysql (master slave) 复制原理及配置
1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服转载 2016-03-29 23:48:46 · 1774 阅读 · 0 评论 -
MyISAM与InnoDB区别
MyISAM 和InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。 以下是一些原创 2016-03-18 14:20:01 · 377 阅读 · 0 评论 -
MySQL Cluster集群探索与实践
MySQL集群是一种在无共享架构(SNA,Share Nothing Architecture)系统里应用内存数据库集群的技术。这种无共享的架构可以使得系统使用低廉的硬件获取高的可扩展性。MySQL集群是一种分布式设计,目标是要达到没有任何单点故障点。因此,任何组成部分都应该拥有自己的内存和磁盘。任何共享存储方案如网络共享,网络文件系统和SAN设备是不推荐或不支持的。通过这种冗余设计,MySQ转载 2016-04-06 21:45:46 · 782 阅读 · 0 评论 -
SQL注入攻击三部曲之进阶篇
通过入门篇的学习,我们知道了SQL注入攻击的判断方法,但是如果想侵入网站,获取网站的机密内容,那么仅靠入门篇的知识是无法达到的。本篇文章我们将进一步的分析SQL注入攻击。首先,我们先看看SQL注入的一般步骤:第一节、SQL注入的一般步骤 首先,判断环境,寻找注入点,判断数据库类型,这在入门篇已经讲过了。其次,根据注入参数类型,在脑海中重构SQL语句的原貌,按参数类型主要分为下面三种转载 2016-05-10 12:25:46 · 458 阅读 · 0 评论 -
SQL注入攻击三部曲之高级篇
经过了入门篇和进阶篇的学习,相信诸位想要破解一般的网站是没有什么问题了,但是先别得意。正所谓学海无涯,技术的进步也是没有止境的。SQL注入是一个看起来简单,但是变数很多的过程。接下来的高级篇让我们更加深入地探讨SQL注入问题。第一节、利用系统表注入SQLServer数据库 SQL Server是一个功能强大的数据库系统,与操作系统也有紧密的联系,这给开发者带来了很大的方便,但另一方面,也为转载 2016-05-10 13:10:55 · 1000 阅读 · 0 评论 -
Mysql 乐观锁
悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有了乐观锁,具体参见下面介绍: 乐观锁介绍:乐观锁( Optimistic Locking转载 2016-05-03 17:13:45 · 791 阅读 · 0 评论 -
mysql 悲观锁 的运用
使用场景举例:以MySQL InnoDB为例商品t_goods表中有一个字段status,status为1代表商品未被下单,status为2代表商品已经被下单,那么我们对某个商品下单时必须确保该商品status为1。假设商品的id为1。一、如果不采用锁,那么操作方法如下://1.查询出商品信息select status from t_goods where id=1;//2.根转载 2016-05-03 16:23:24 · 1097 阅读 · 0 评论 -
MySQL修改数据表存储引擎的3种方法介绍
MySQL作为最常用的数据库,经常遇到各种各样的问题。今天要说的就是表存储引擎的修改。有三种方式,列表如下。1.真接修改。在数据多的时候比较慢,而且在修改时会影响读取性能。my_table是操作的表,innoDB是新的存储引擎。复制代码代码如下:ALTER TABLE my_table ENGINE=InnoDB2.导出,导入。这个比较容易操作,直接把导转载 2016-05-06 00:29:38 · 1639 阅读 · 0 评论 -
MySQL的多种存储引擎总结
MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。MySQL支持数个存储引擎作为对不同表的类型的处理器。MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎:·转载 2016-05-06 00:33:51 · 546 阅读 · 0 评论 -
MYSQL show engine等实用 command
看DB参数和数据用:show status;mysql> show status;看存储引擎参数:mysql> show engine innodb status\G;*************************** 1. row *************************** Type: InnoDB Name: Status: ==原创 2016-05-06 14:30:34 · 1764 阅读 · 0 评论 -
MySql避免重复插入记录方法
MySql避免重复插入记录方法1:ignore2:Replace3) ON DUPLICATE KEY UPDATE本文章来给大家提供三种在mysql中避免重复插入记录方法,主要是讲到了ignore,Replace,ON DUPLICATE KEY UPDATE三种方法,各位同学可尝试参考。案一:使用ignore关键字如果是用主键primary或者唯一索引u转载 2016-05-06 15:38:14 · 531 阅读 · 0 评论 -
mysql 左连接 右连接
1、内联接(典型的联接运算,使用像 = 或 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。 2、外联接。外联接可以是左向外联接、右向外联接或完整外部联接。 在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定: 1)LEFT JOIN或LEFT原创 2016-05-06 17:05:51 · 801 阅读 · 0 评论 -
MYSQL优化原则
update ... select ... from ... where ... 你的瓶颈是在查询子句,并不是update的问题,优化完查询执行自然会上去。 -------------------------- 优化SQL查询的原则如下: 1、使用索引来更快地遍历表。 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建原创 2016-05-31 00:38:39 · 427 阅读 · 0 评论 -
mysql优化之insert/delete/update
加快插入操作的方法:1、 同时从同一个客户端插入很多行,使用含有多个VALUE的INSERT语句同时插入多行,比使用单行INSERT语句一次插一行快。如果向一个非空表添加数据,可以调节bulk_insert_buffer_size变量,使数据插入更快。2、 从不同的客户端插入很多行,通过INSERT DELAYED语句加快速度。3、 用MyISAM,如果在表中没有删除的行,能在S原创 2016-05-31 01:05:17 · 2292 阅读 · 0 评论 -
MySQL 对于千万级的大表要怎么优化? - MySQL - 知乎
很多人第一反应是各种切分;我给的顺序是:第一优化你的sql和索引;第二加缓存,memcached,redis;第三以上都做了后,还是慢,就做主从复制或主主复制,读写分离,可以在应用层做,效率高,也可以用三方工具,第三方工具推荐360的atlas,其它的要么效率不高,要么没人维护;第四如果以上都做了还是慢,不要想着去做切分,mysql自带分区表,先试试这个,对你的应用是透原创 2016-05-31 01:19:57 · 8519 阅读 · 2 评论 -
Mysql的列索引和多列索引
Mysql数据库提供两种类型的索引,如果没正确设置,索引的利用效率会大打折扣却完全不知问题出在这。CREATE TABLE test ( id INT NOT NULL, last_name CHAR(30) NOT NULL, first_name CHAR(30) NOT NULL, PRIMARY KEY (id), INDEX原创 2016-05-06 16:23:23 · 594 阅读 · 0 评论 -
pt-query-digest查询日志分析工具
1. 工具简介pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分转载 2016-05-06 23:16:11 · 927 阅读 · 0 评论 -
mysql 聚簇索引 和聚簇索引 (二级索引)的 那些事
mysql的聚簇索引是指innodb引擎的特性,mysiam并没有,如果需要该索引,只要将索引指定为主键(primary key)就可以了。比如:create table blog_user( user_Name char(15) not null check(user_Name !=''), user_Password char(15) not null, user_emi原创 2016-05-06 23:47:21 · 22783 阅读 · 7 评论 -
mysql cluster的常见问题
MySQL Cluster是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster存储引擎,允许在1个Cluster中运行多个MySQL服务器。MySQL Cluster是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的Cluster。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。原创 2016-05-07 01:10:44 · 8229 阅读 · 0 评论 -
MySQL 性能优化之 延迟关联(deferred join)
【背景】 某业务数据库load 报警异常,cpu usr 达到30-40 ,居高不下。使用工具查看数据库正在执行的sql ,排在前面的大部分是:SELECT id, cu_id,name, info, biz_type, gmt_create, gmt_modified,start_time, end_time, market_type, back_leaf_cate转载 2016-05-07 13:41:12 · 6878 阅读 · 1 评论 -
MySQL EXPLAIN 语句的 SELECT TYPE有哪些值
询中每个select子句的类型,提供了各种表示table列引用的使用方式的类型。(1)SIMPLE简单的SELECT语句(不包括UNION操作或子查询操作)(2)PRIMARY/UNIONPRIMARY:查询中最外层的SELECT(如两表做UNION或者存在子查询的外层的表操作为PRIMARY,内层的操作为UNION)UNION:UNION操作中,查询中原创 2016-05-07 15:19:10 · 7157 阅读 · 0 评论 -
mysql explain type 和extra 列的含义
用mysql进行调优的时候都肯定会用到explain来看select语句的执行情况,这里简单介绍结果中两个列的含义。 type列官方的说法,说这列表示的是“访问类型”,更通俗一点就是:mysql找到需要的数据行的方式。一下就是从效率最差到最好顺序分别介绍下:1:All。 这个就是所谓的全表扫描,没有用到任何的index,mysql就是从头到尾把整个表遍历一边,找到所需要转载 2016-05-07 15:40:32 · 1368 阅读 · 0 评论 -
优化mysql的limit offset
在mysql中,通常使用limit做分页,而且经常会跟order by 连用。在order by 上加索引有时候是很有帮助的,不然系统会做很多的filesort。经常碰到的一个问题是limit的offset太高,如:limit 100000,20,这样系统会查询100020条,然后把前面的100000条都扔掉,这是开销很大的操作,导致查询很慢。假设所有分页的页面访问频率一样,这样的查询平均转载 2016-05-07 20:26:23 · 625 阅读 · 0 评论 -
MySQL在有索引列情况下 和 无索引情况下 select *的输出结果顺序
创建一个表格,一个是主键列,一个是索引列。然后插入一批数据,调用select * from test_b,可以发现输出结果并没有按照Id有序,而是按照Type有序。如果希望按照Id有序,可以使用force index (primary)这一hint语句。mysql> CREATE TABLE `test_b` ( -> `Id` int(11) NOT NULL,原创 2016-05-07 20:42:58 · 3158 阅读 · 0 评论 -
mysql优化limit查询语句的5个方法
mysql的分页比较简单,只需要limit offset,length就可以获取数据了,但是当offset和length比较大的时候,mysql明显性能下降1.子查询优化法先找出第一条数据,然后大于等于这条数据的id就是要获取的数据 缺点:数据必须是连续的,可以说不能有where条件,where条件会筛选数据,导致数据失去连续性,具体方法请看下面的查询实例:复制代码 代码如下:转载 2016-05-07 21:13:41 · 608 阅读 · 0 评论 -
实战体验几种MySQLCluster方案
1.背景MySQL的cluster方案有很多官方和第三方的选择,选择多就是一种烦恼,因此,我们考虑MySQL数据库满足下三点需求,考察市面上可行的解决方案:高可用性:主服务器故障后可自动切换到后备服务器可伸缩性:可方便通过脚本增加DB服务器负载均衡:支持手动把某公司的数据请求切换到另外的服务器,可配置哪些公司的数据服务访问哪个服务器需要选用一种方案满足以上需求。在MySQL官方网站上参转载 2016-05-08 03:39:36 · 611 阅读 · 0 评论 -
Java多线程系列--“JUC集合”03之 CopyOnWriteArraySet
概要本章是JUC系列中的CopyOnWriteArraySet篇。接下来,会先对CopyOnWriteArraySet进行基本介绍,然后再说明它的原理,接着通过代码去分析,最后通过示例更进一步的了解CopyOnWriteArraySet。内容包括:CopyOnWriteArraySet介绍CopyOnWriteArraySet原理和数据结构CopyOnWriteArraySet转载 2016-05-08 11:32:28 · 466 阅读 · 0 评论 -
MySQL 数据库性能优化之表结构优化
很多人都将 数据库设计范式 作为数据库表结构设计“圣经”,认为只要按照这个范式需求设计,就能让设计出来的表结构足够优化,既能保证性能优异同时还能满足扩展性要求。殊不知,在N年前被奉为“圣经”的数据库设计3范式早就已经不完全适用了。这里我整理了一些比较常见的数据库表结构设计方面的优化技巧,希望对大家有用。由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的时候是以 page转载 2016-05-08 12:11:25 · 504 阅读 · 0 评论 -
mysql 临时表 效率问题改进
问题:近日,线上mysql查出一个慢sql,每次都要查询1000ms以上,严重影响用户体验今得空去诊断一番,记录如下:sql原句:SELECT r.object_id AS cardId, count(1) AS attachs FROM hzresource_object r LEFT JOIN ( SELECT card_id FROM card_member转载 2016-05-08 17:20:57 · 3461 阅读 · 3 评论 -
mysql 做增量备份
工作原理就是把每次完整备份的binlog 和postion取出,做增量备份的时候取当时的binlog和postion,使用mysqlbinlog 把这之间的数据读出到另一个文件。 注:本文中可能有个别地方会有些纰漏,请大家自行调试,因为下面的脚本是我用在真实环境中copy过来的,只是临时改了里面个别的参数,例如文件夹位置,密码等。。。。如有问题敬请谅解一、完整备份vi full_m转载 2016-04-23 23:26:21 · 575 阅读 · 0 评论 -
mysqldump 用法
mysqldump常用于MySQL数据库逻辑备份。 1、各种用法说明 A. 最简单的用法:mysqldump -uroot -pPassword [database name] > [dump file] 上述命令将指定数据库备份到某dump文件(转储文件)中,比如:mysqldump -uroot -p123 test > test.dump转载 2016-04-23 23:53:55 · 481 阅读 · 0 评论 -
mysql ndb集群备份数据库和还原数据库的方法
1、在管理节点上进行备份。 ndb_mgm> start backup nowait ndb_mgm> Node 3: Backup 4 started from node 1 Node 3: Backup 4 started from node 1 completed StartGCP: 43010 StopGCP: 43013 #Records: 2138 #LogReco转载 2016-04-24 00:06:00 · 1175 阅读 · 0 评论