数据库
文章平均质量分 59
golden_lion
这个作者很懒,什么都没留下…
展开
-
50多条mysql数据库优化建议
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说:a.有大量重复值、且经常有范围查询( > , =, b.经常同时存取多列,且每列都含有重复值可考虑建立组转载 2016-07-20 09:43:16 · 1517 阅读 · 0 评论 -
MySQL5.7 Replication主从复制配置教程
最近配置mysql5.7主从复制的时候碰到了些问题,老老实实按老版本的步骤配置会有错误,后来自己查看了官方文档,才解决了问题,在这里总结一下5.7的配置步骤,大体步骤跟老版本的还是一样的,只是有一些小区别,下面进行具体介绍。 官方文档:http://dev.mysql.com/doc/refman/5.7/en/replication.html 系统环境:win转载 2016-07-20 09:12:31 · 901 阅读 · 0 评论 -
MySQL随机获取数据的方法,支持大数据量
最近做项目,需要做一个从mysql数据库中随机取几条数据出来。总所周知,order by rand 会死人的。。因为本人对大数据量方面的只是了解的很少,无解,去找百度老师。。搜索结果千篇一律。特发到这里来,供大家学习。在mysql中带了随机取数据的函数,在mysql中我们会有rand()函数,很多朋友都会直接使用,如果几百条数据肯定没事,如果几万或百万时你会发现,直接使用是错误的。下面转载 2016-07-20 09:11:48 · 7188 阅读 · 0 评论 -
mysql order by 优化 |order by 索引的应用
在某些场景,在不做额外的排序情况下,MySQL 可以使用索引来满足 ORDER BY 子句的优化。虽然 ORDER BY并不完全精确地匹配索引,但是索引还是会被使用,只要在WHERE子句中,所有未被使用的那部分索引(一个索引多个字段的情况)以及所有ORDER BY字段都是一个常量就没问题。下面这些查询语句,使用了索引来对 ORDER BY部分进行优化:SELECT * FROM t转载 2016-07-20 09:11:03 · 519 阅读 · 0 评论 -
MySql 里的IFNULL、NULLIF和ISNULL用法区别
mysql中isnull,ifnull,nullif的用法如下:isnull(expr) 的用法:如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。 mysql> select isnull(1+1);-> 0mysql> select isnull(1/0);-> 1使用= 的null 值对比通常是错误的。 isnull()转载 2016-07-20 09:10:28 · 8090 阅读 · 0 评论 -
如何优化用SQL语句INSERT INTO … SELECT插入数据时锁全表的问题
1、binlog format 启用Row Based Replication(行复制)模式:SET GLOBAL binlog_format = 'ROW';如果你想永久的启用这个模式,请修改my.cnf 配置文件:[mysqld]binlog_format=ROW2、在执行你的sql语句前,设置当前会话的隔离级别SET SESSION TRAN转载 2016-07-20 09:09:59 · 8186 阅读 · 1 评论 -
经典SQL语句大全
一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\My转载 2016-06-23 18:20:25 · 312 阅读 · 0 评论 -
数据库锁有几种
锁的类型有三种: 共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被读取完毕,S锁立即被释放。 排它(X)锁:仅允许一个事务封锁此页;其他任何事务必须等到X锁被释放才能对该页进行访问;X锁一直到事务结束才能被释放。 更新(U)锁:用来预定要对此页施加X锁,它允许其他事务读,但不允许再施加U锁或X锁;当被读取的页将要被更新时,则升级为X锁;U锁一直到事务结束时转载 2016-07-15 16:08:48 · 10336 阅读 · 2 评论 -
将mysql数据导入mongodb
1、进入Mysql,将数据导成CVSselect * from test_info into outfile '/tmp/test.csv' fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n'; 2、将CVS导入到Mongodb中E:\my转载 2016-07-14 09:27:25 · 2583 阅读 · 1 评论 -
连续签到奖励 数据库如何设计?
用户连续签到7天 7天均有不同的奖励 如果有中间则会从第一天重新开始签到 7天一个周期完成后恢复到第一天开始重新签到考虑到用户数大概在200W,数据库如何设计更加合理?添加评论 分享按投票排序按时间排序3 个回答6赞同反对,不会显示你的姓名bravecat6 人赞同转载 2016-07-11 17:20:22 · 22767 阅读 · 0 评论 -
mysql几种性能测试的工具使用
mysql几种性能测试的工具使用近期由于要比较mysql及其分支mariadb, percona的性能,了解了几个这方面的工具,包括:mysqlslap sysbench tpcc-mysql,做一个整理,备忘,分享1、mysqlslap安装:简单,装了mysql就有了作用:模拟并发测试数据库性能。优点:简单,容易使用。不足:不能指定生成的数据规模,测试转载 2016-07-20 09:13:06 · 5552 阅读 · 0 评论 -
mysql max_allowed_packet查询和修改
http://www.2cto.com/database/201303/195830.htmlmysql根据配置文件会限制server接受的数据包大小。有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。查看目前配置 show VARIABLES like '%max_allowed_packet%';显示的结果为:转载 2016-07-20 09:13:50 · 935 阅读 · 0 评论 -
mysql 如何用一条SQL将一张表里的数据插入到另一张表 3个例子
1. 表结构完全一样 insert into 表1 select * from 表2 2. 表结构不一样(这种情况下得指定列名) insert into 表1 (列名1,列名2,列名3) select 列1,列2,列3 from 表23、只从另外一个表取部分值insert into 表1 (列名1,列名2,列名3) values(列1,列转载 2016-07-20 09:19:00 · 36102 阅读 · 3 评论 -
MySQL索引之前缀索引和索引选择性
有时需要索引很长的字符列,它会使索引变大而且变慢。一个策略就是模拟哈希索引。但是有时这也不够好,那?通常可以索引开始的几个字符,而不是全部值,以节约空间并得到好的性能。这使索引需要的空间变小,但是也会降低选择性。索引选择性是不重复的索引值 和表中所有行的比值。高选择性的索引有好处,因为它使mysql在查找匹配的时候可以过波掉更多的行。唯一索引的选择率为1,为最佳值。如果索引BLOG转载 2016-07-20 09:18:08 · 2721 阅读 · 0 评论 -
MYSQL中replace into的用法
今天在编程的时候,学习了replace into的用法,真的很好用,是insert into的增强版。在向表中插入数据时,我们经常会遇到这样的情况:1、首先判断数据是否存在;2、如果不存在,则插入;3、如果存在,则更新。在SQL Server中可以这样处理:if not exists (select 1 from t where id = 1)?insert into t(id转载 2016-07-20 09:17:38 · 1787 阅读 · 0 评论 -
Oracle 中count(1) 和count(*) 的区别
count(1)与count(*)比较: 如果你的数据表没有主键,那么count(1)比count(*)快 如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快 如果你的表只有一个字段的话那count(*)就是最快的啦 count(*) count(1) 两者比较。主要还是要count(1)所相对应的数转载 2016-07-20 09:17:06 · 1823 阅读 · 0 评论 -
MySQL开发规范
1.库名、表名、字段名必须使用小写字母,并采用下划线分割。a)MySQL有配置参数lower_case_table_names,不可动态更改,linux系统默认为 0,即库表名以实际情况存储,大小写敏感。如果是1,以小写存储,大小写不敏感。如果是2,以实际情况存储,但以小写比较。b)如果大小写混合使用,可能存在abc,Abc,ABC等多个表共存,容易导致混乱。c)字段名显式转载 2016-07-20 09:16:07 · 497 阅读 · 0 评论 -
二、oracle pctfree和pctused详解
一、建立表时候,注意PCTFREE参数的作用 PCTFREE:为一个块保留的空间百分比,表示数据块在什么情况下可以被insert,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被用于update;即:当使用一个block时,在达到pctfree之前,该block是一直可以被插入的,这个时候处在上升期。 PCTUSED:是指当块里的转载 2016-07-20 09:15:29 · 284 阅读 · 0 评论 -
mysql支持跨表delete删除多表记录
前几天写了Mysql跨表更新的一篇总结,今天我们看下跨表删除。 在Mysql4.0之后,mysql开始支持跨表delete。 Mysql可以在一个sql语句中同时删除多表记录,也可以根据多个表之间的关系来删除某一个表中的记录。 假定我们有两张表:Product表和ProductPrice表。前者存在Product的基本信息,后者存在Product的价格。第一种跨表删除的方式是不用j转载 2016-07-20 09:14:55 · 4167 阅读 · 0 评论 -
MYSQL的锁介绍,以及死锁发生情况-带例子
mysql锁能在并发情况下的mysql进行更好的优化MySQL有三种锁的级别:页级、表级、行级,这3种锁的特性可大致归纳如下: 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,转载 2016-07-20 09:14:22 · 4249 阅读 · 0 评论 -
MySQL主从复制配置
http://www.blogjava.net/dongbule/archive/2010/08/22/329602.htmlMySQL的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。(1)首先确保主从服务器上的Mysql版本相同(2)在主服务器上,设置一个从数据库的账户,使用R转载 2016-06-06 17:28:51 · 243 阅读 · 0 评论 -
MySQL高可用解决方案(MySQL HA Solution)
http://blog.sina.com.cn/s/blog_7e89c3f501012vtr.html什么是高可用性?很多公司的服务都是24小时*365天不间断的。比如Call Center。这就要求高可用性。再比如购物网站,必须随时都可以交易。那么当购物网的server挂了一个的时候,不能对业务产生任何影响。这就是高可用性。高可用性2个问题:如何共享数据或同步数据?如何转载 2016-06-06 17:25:30 · 1353 阅读 · 0 评论 -
从分布式数据库结构入手讲解其前世今生
由于分布式数据库克服了集中式数据库的许多缺点,并且自然地适应于许多单位地理上分散而逻辑上统一的组织结构,因此,20多年以来从理论到实践都得到了迅速发展,并取得了决定性成果。 分布式数据库结构 分布式数据库的典型定义是:分布式数据库是一个数据集合,这些数据在逻辑上属于同一个系统,但物理上却分散在计算机网络的若干站点上,并且要求网络的每个站点具有自治的处理能力,能执行本地的应用。每转载 2016-06-12 10:27:08 · 4005 阅读 · 0 评论 -
MySQL中SQL优化和架构设计的一些简单想法
MySQL中SQL优化和架构设计的一些简单想法普通MySQL运行,数据量和访问量不大的话,是足够快的,但是当数据量和访问量剧增的时候,那么就会明显发现MySQL很慢,甚至down掉,那么就要考虑优化我们的MySQL了。优化无非是从三个角度入手:第一个是从硬件,增加硬件,增加服务器第二个就是对我们的MySQL服务器进行优化,增加缓存大小,开多端口,读写分开第三个就是我们的应用转载 2016-05-13 08:45:40 · 350 阅读 · 0 评论 -
MySQL开发规范和原则大全
一、 表设计库名、表名、字段名必须使用小写字母,“_”分割。库名、表名、字段名必须不超过12个字符。库名、表名、字段名见名知意,建议使用名词而不是动词。建议使用InnoDB存储引擎。存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE。建议使用UNSIGNED存储非负数值。建议使用INT UNSIGNED存储IPV4。整形定义中不添加长度,比如使用INT,而不是INT(4)。使转载 2016-05-25 14:59:04 · 2974 阅读 · 1 评论 -
数据库SQL优化大总结之 百万级数据库优化方案
网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。这篇文章我花费了大量的转载 2016-05-24 16:52:36 · 1952 阅读 · 0 评论 -
sql如何查出某字段为空格或''但不是null的记录??还有 ‘ ’和'' 和 null 有什么区别吗??
2015-05-13 09:351where 字段 = '' and 字段 is not null查询出字段为空但不为null的,空其实字段里面是有空值的,而null是字段里并没有赋过任何值转载 2016-04-05 13:58:47 · 10746 阅读 · 0 评论 -
Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法
一、开篇这里整合分别采用了Hibernate和MyBatis两大持久层框架,Hibernate主要完成增删改功能和一些单一的对象查询功能,MyBatis主要负责查询功能。所以在出来数据库方言的时候基本上没有什么问题,但唯一可能出现问题的就是在hibernate做添加操作生成主键策略的时候。因为我们都知道hibernate的数据库本地方言会针对不同的数据库采用不同的主键生成策略。所以针对转载 2016-04-05 10:20:47 · 570 阅读 · 0 评论 -
JAVA调用MYSQL存储过程 实例
类ProcedureTestimport java.sql.CallableStatement;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Types;public class ProcedureTest {/** 表和存储过程定义如下: delimiter //*转载 2016-04-05 09:46:02 · 2454 阅读 · 0 评论 -
linux下使用yum安装mysql详解
http://blog.csdn.net/tjcyjd/article/details/41646889)已讲了yum源的配置,有了yum那么安装mysql就会很简单,具体如下:1、安装客户端和服务器端确认mysql是否已安装:?12yum list installed mysql*rpm转载 2016-03-16 13:17:46 · 406 阅读 · 0 评论 -
CentOS6.4下Mysql数据库的安装与配置
如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk、tomcat、eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--CentOS下j2ee环境搭建),如果要开发web项目,我们当然可以安装一个myeclipse到Linux系统上去,这个安装方法和安装eclipse完全相同,就没有记录下来了,有了jdk、tomcat、ec转载 2016-03-16 13:25:45 · 251 阅读 · 0 评论 -
Linux开启mysql远程连接的设置步骤
Mysql默认root用户只能本地访问,不能远程连接管理mysql数据库,Linux如何开启mysql远程连接?设置步骤如下:1、GRANT命令创建远程连接mysql授权用户itloggermysql -u root -pmysql>GRANT ALL PRIVILEGES ON *.* TO itlogger@localhost IDENTIFIED BY ‘www.itlogger转载 2016-03-16 15:55:41 · 2815 阅读 · 0 评论 -
【持久层】java程序猿的JDBC知识点
声明:本文只是JDBC和数据库的一个知识路线图,只是给出了一个大概的学习结构,很多东西提到了但是没有细节,需要自行丰富。一、基本操作 JDBC的基本操作,总结起来就是“注册驱动、获取连接、获取执行对象并执行SQL、获取结果集并处理、关闭资源”,每一个步骤都有一些东西值得沉淀。1. 注册驱动 a. DriverManager.registerD转载 2016-06-27 18:19:53 · 850 阅读 · 0 评论 -
SQL语句order by两个字段同时排序。
Posted by 陶之11@网站&WebcodeORDER BY 后可加2个字段,用英文逗号隔开。f1用升序, f2降序,sql该这样写ORDER BY f1, f2 DESC也可以这样写,更清楚:ORDER BY f1 ASC, f2 DESC如果都用降序,必须用两个descORDER BY f1 DESC, f2 DESC转载 2016-06-08 10:47:12 · 7932 阅读 · 0 评论 -
11招教你如何玩转数据库设计
在日常工作中,当我们遇到海量数据时,如何从中挑选出自己想要的数据呢?是盲目的查找,还是寻求新的解决方案亦或是通过技巧来获取?开发者在设计一个数据表单时,往往会遵循三条常用形式,他们认为常规模式是设计的唯一途径。然而由于开发者一开始就抱有这种心态,使数据表单设计变得墨守成规,阻碍了它的创新。作者Shivprasad 从平时的工作项目中积累了一些经验,向我们介绍了11款制作数据表单技巧,当设计转载 2016-05-16 06:54:50 · 1317 阅读 · 0 评论 -
JDBC注册驱动程序三种方式
一、DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());jdbc是使用桥的模式进行连接的。DriverManager就是管理数据库驱动的一个类,java.sql.Driver就 是一个提供注册数据库驱动的接口,而com.microsoft.sqlserver.jdbc.SQLServe转载 2016-05-16 06:34:09 · 842 阅读 · 0 评论 -
B+/-Tree原理及mysql的索引分析
B+/-Tree原理B-Tree介绍B-Tree是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字)转载 2016-04-20 13:19:14 · 403 阅读 · 0 评论 -
Redis 学习笔记四 Mysql 与Redis的同步实践
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]一、测试环境在Ubuntu kylin 14.04 64bit已经安装MySQL、Redis、php、lib_mysqludf_json.so、Gearman。 点击这里查看测试数据库及表参考 本文也有些基本操作,在之前文章里有介绍。1、安装安装gearman转载 2016-05-27 09:48:35 · 1429 阅读 · 0 评论 -
redis与mysql数据同步
应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql,此种情况存在的问题主要是如何保证mysql与redis的数据同步,二者数据同步的关键在于mysql数据库中主键,方案是在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增并进行读取,若mysql更新失败,则需要及时清除缓存及同步redis主键。String tb转载 2016-05-27 09:46:47 · 1479 阅读 · 0 评论 -
mybatis sql in 查询
本文转自:http://www.blogjava.net/xmatthew/archive/2011/08/31/355879.html1. 当查询的参数只有一个时 findByIds(List ids) 1.1 如果参数的类型是List, 则在使用时,collection属性要必须指定为 listselect id="findByIdsMap" resultM转载 2016-05-26 15:53:27 · 686 阅读 · 0 评论