mysql
liujihaozhy
学而不思则惘,思而不学则殆
展开
-
mysql外键使用
有个时候,在建立数据库时,原创 2014-11-09 13:36:50 · 471 阅读 · 0 评论 -
sql join 降低笛卡尔积结果集
刚读了一篇文章,sql语句的解析过程:http://www.cnblogs.com/myprogram/archive/2013/01/24/2874666.html两张表数据行若很大,笛卡尔积数量是非常庞大的,如何降低呢?查询sql形如:SELECT C.customerid, COUNT(O.orderid) AS numordersFROM dbo.Customers AS C转载 2016-09-10 16:50:48 · 2894 阅读 · 2 评论 -
centos MYSQL 主从同步配置
先吐槽下,网上一堆的人各种转载,主从同步你从mysql安装说起干啥,那是不是还要解析下mysql是用来干啥的,内核是怎么实现的!?既然是主从同步配置,这些弱智的东西就不要写了。在网站找了一些资料,总结了以下步骤:主服务器:vim /etc/my.cnf修改或添加:log-bin=master-binlog-bin-index=master-bin.indexserve原创 2016-04-18 14:35:09 · 389 阅读 · 0 评论 -
记一次sql优化过程
在一个列表中,用到分页,就用到统计数据,列表不允许重复数据出现,就得用到group by,开始的sql大概是这样的:很明显,在子查询的时候,生成了一个临时表,当数据量多的情况,慢查就不可避免了。所以,优化在所难免~其实这是最简单的情况,在列表中还存在搜索条件,有针对对table1的,有针对table2。存在left join 就要尽量降低笛卡尔积,优化之后并带有查询条件的情况,有如原创 2016-11-23 22:45:02 · 550 阅读 · 0 评论 -
查询重复数据
SELECT numb,COUNT(`numb`) FROM `itd_remind` GROUP BY `numb` HAVING COUNT(`numb`) > 1原创 2016-12-07 13:31:10 · 283 阅读 · 0 评论 -
mysql 存储过程、触发器、视图、游标、分布式事务-之存储过程
存储过程:http://www.cnblogs.com/zhuawang/p/4185302.html原创 2016-12-25 11:52:53 · 613 阅读 · 0 评论 -
mysql 存储过程、触发器、视图、游标、分布式事务--之触发器
触发器,简单的解释就是:假如我操作了某一张表,但是呢,另外一张表的数据也要跟着变化,这个过程可以用相关程序逻辑来实现该功能,也可以用数据库来实现,数据库实现过程就是所谓的触发器。原创 2016-12-25 12:27:56 · 377 阅读 · 0 评论 -
mysql 查询一个表中有的记录且在另一个表中无相关的记录sql
1、SELECT *FROM table1WHERE xxxand fieldsname not in ( SELECT fieldsname from table2 where xxxx));2、SELECT a.*FROM table1 aLEFT JOIN table2 b ON (a.fieldsname = b.fieldsname)WHERE原创 2016-12-29 16:09:29 · 4934 阅读 · 0 评论 -
MySQL日期时间函数大全
http://www.cnblogs.com/zeroone/archive/2010/05/05/1727659.htmlMySQL日期时间函数大全DAYOFWEEK(date) 返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1998-02-03'); -> 3 WEEKDA转载 2016-12-29 18:57:31 · 199 阅读 · 0 评论 -
mysql explain 特殊现象
最近看到一个问题,形如:select * from index_test whereuser_name like '%aaa%';上面这条语句会不会用到索引呢?根据之前的了解,这个是不用到的,不过还是测试下,然后建立这样的表以及联合索引:CREATE TABLE `index_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `us原创 2017-03-03 09:25:13 · 348 阅读 · 0 评论 -
MySQL server has gone away 问题分析
最近网站时不时报错:MySQL server has gone away问题分析,mysql在创建连接之后,之后处理逻辑时间过长导致mysql连接超时,假设一个请求发起,如下执行顺序:mysql_connect-->ok(wait_timeout = 30s)-->(insert,select,update,delete)->ok->逻辑处理(逻辑处理时间:40s,其中,无任何的inser原创 2017-08-11 16:29:54 · 418 阅读 · 0 评论 -
mysql 分组、最新数据优先于group,分页同时处理
如图,需要根据user_id进行分组,最新的数据优先于分组,结合limit:相关sql:SELECT a.id, a.user_id, a.user_name, a.create_time, a.remarkFROM `itd_authentication_qqwx_log` aORDER BY a.id desc;INNER JOIN ( SELECT原创 2017-09-16 23:23:32 · 2221 阅读 · 0 评论 -
慢查优化
1、取最大值慢查:SELECT `id` FROM `table_name` WHERE ( `addtime` 优化:SELECT MAX(`id`) FROM `table_name` WHERE ( `addtime` 2、in查询优化慢查:SELECT `field1` FROM `table_name` WHERE `field2` IN ('JSA00113原创 2017-10-23 14:49:08 · 254 阅读 · 0 评论 -
MySQL大表优化方案
https://segmentfault.com/a/1190000006158186这篇文章总结得很好,我掌握的知识都是碎片化的,没有做总结归类,也缺失这一块的锻炼转载 2018-03-13 22:21:54 · 122 阅读 · 0 评论 -
mysql 半同步复制:semi sync replication
http://www.orczhou.com/index.php/2011/06/mysql-5-5-semi-sync-replication-setup-config/转载 2018-03-22 08:53:15 · 195 阅读 · 0 评论 -
项目中遇到的mysql group by having
1、group 不要 组内,组外排序;组内排序(若order by it.addtime ASC 写入groupby 后,不创建临时表,那么是分组之后的排序):组内排序(http://blog.csdn.net/shellching/article/details/8292338):SELECT *FROM ( SELECT it.money, it.user_i原创 2016-07-09 14:34:21 · 516 阅读 · 0 评论 -
mysql 创建远程连接用户
1、以管理员身份登录mysqlmysql -u root -p2、选择mysql数据库use mysql3、创建用户并设定密码create user 'test'@'localhost' identified by '123456'4、使操作生效flush privileges5、为用户创建数据库create database原创 2016-06-22 00:28:57 · 537 阅读 · 0 评论 -
创建mysql表分区的方法
转载文章,测试了大部分,正确!表分区是最近才知道的哦 ,以前自己做都是分表来实现上亿级别的数据了,下面我来给大家介绍一下mysql表分区创建与使用吧,希望对各位同学会有所帮助。表分区的测试使用,主要内容来自于其他博客文章以及mysql5.1的参考手册mysql测试版本:mysql5.5.28mysql物理存储文件(有mysql配置的datadir决定存储路径)格式简介转载 2014-11-09 12:57:36 · 469 阅读 · 0 评论 -
请论述下mysql中innodb和myisam的区别和优劣
InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。 下面是已知的两者之间的差别,仅供参考。 innodb InnoDB 给 MySQL 提供了具有事务(commit)、回滚(rollback)和崩溃修复能力 (crash recovery capabilities)的事务安全 (transaction-safe (AC转载 2016-03-22 09:59:12 · 392 阅读 · 0 评论 -
mysql exits
http://www.nowamagic.net/librarys/veda/detail/639转载 2016-03-22 16:38:31 · 368 阅读 · 0 评论 -
mysql 查询优化
原文:http://www.jb51.net/article/39221.htm1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中使用!=或3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id fro转载 2016-03-14 18:12:43 · 230 阅读 · 0 评论 -
mysql锁-乐观锁
1、乐观锁:一张表 两个字段 一个id 一个useCount表里存了100个id 每个id对应自己的useCount业务场景是:当id每使用一次 useCount要加1。 当useCount大于1000时 这个id就不能在被使用了(换句话说 无法从数据库中查出)在高并发情况下,会遇到一种问题: 假设数据表中有一条记录为 id=123456; useCount=999原创 2016-03-21 12:14:44 · 348 阅读 · 0 评论 -
mysql锁-悲观锁
原文:http://my.oschina.net/u/1866821/blog/378336悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系转载 2016-04-06 15:15:57 · 194 阅读 · 0 评论 -
MySQL行级锁、表级锁、页级锁详细介绍
原文:http://www.jb51.net/article/50047.htm页级:引擎 BDB。表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行行级:引擎 INNODB , 单独的一行记录加锁表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许行级,,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中转载 2016-04-06 17:20:47 · 423 阅读 · 0 评论 -
mysql索引
fasdsfasfa转载 2016-03-22 12:25:38 · 235 阅读 · 0 评论 -
【MySQL】性能优化之 覆盖索引
原文:http://blog.itpub.net/22664653/viewspace-774667/ 一个包含查询所需的字段的索引称为 covering index 覆盖索引。MySQL只需要通过索引就可以返回查询所需要的数据,而不必在查到索引之后进行回表操作,减少IO,提供效率。 当你对一个sql 使用explain statement 查看一个sql的执行计划时,在EXPLA转载 2016-03-24 16:26:37 · 257 阅读 · 0 评论 -
mysql分表分区
mysql分区分表1转载 2016-03-25 15:16:24 · 274 阅读 · 0 评论 -
mysql 不太熟悉概念收集
事物:MYSQL的事务处理主要有两种方法1.用begin,rollback,commit来实现 begin开始一个事务 rollback事务回滚 commit 事务确认2.直接用set来改变mysql的自动提交模式 mysql默认是自动提交的,也就是你提交一个query,就直接执行!可以通过 set autocommit = 0 禁止自原创 2016-03-24 12:22:59 · 446 阅读 · 0 评论 -
mysql触发器
原文:http://www.cnblogs.com/zzwlovegfj/archive/2012/07/04/2576989.html触发器(trigger):监视某种情况,并触发某种操作。触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/upd转载 2016-03-26 11:35:31 · 230 阅读 · 0 评论 -
CentOS下MySQL忘记root密码解决方法【转载】
1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对 外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全 状态。最安全的状态是到服务器的Console上面操作,并且转载 2016-04-18 11:35:53 · 227 阅读 · 0 评论 -
PHP大批量插入数据库的3种方法和速度对比
原文来自:http://www.jb51.net/article/51975.htm第一种方法:使用insert into 插入,代码如下:?1234567$params= array(‘value'=>'50′);set_time_limit(0);转载 2016-02-02 14:29:42 · 1988 阅读 · 0 评论 -
MYSQL ERROR CODE 错误编号的意义
http://www.cnblogs.com/snake-hand/p/3180048.htmlMYSQL ERROR CODE 错误编号的意义mysql error code(备忘)转1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除转载 2016-06-21 08:59:51 · 1350 阅读 · 0 评论 -
mysql删除重复记录并保留一条
DELETEFROM goods_brandWHERE brand_name IN ( select * from ( SELECT brand_name FROM goods_brand GROUP BY brand_name HAVING COUNT(brand_name) > 1 ) as a)AND id NOT IN ( sel...转载 2018-10-12 20:51:53 · 208 阅读 · 0 评论