聚合文章列表
17 浏览

Javaweb MySQL 实现本地Android数据Api接口

AndroidJavawebMySQLTomcat实现本地简易Api接口需要配置两个jar包jackson-all-2.8.0.jarjson解析和mysql连接mysql-connector-java-5.1.7-bin.jar文末云盘地址压缩包包含。使用Tomcat本地服务,连接的是本地MYSQL数据库world数据库city表,字段如图:image.png创建city的实体类:publicclassCityBeen{privateStringID;privateStringName;privateStringCountryCode;privateStringDistrict;privateStringPopulation;//getset}预期达到返回json格式,也就是包装成json格式:单个的{"code":"ok","msg":"访问成功","time":1510989490351,"object":{"id":"1","name":"Ka

MySQL 2017-11-20 发布
13 浏览

解决死锁之路 - 了解常见的锁类型

在上一篇博客中,我们学习了事务以及事务并发时可能遇到的问题,并介绍了四种不同的隔离级别来解决这些并发问题,在隔离级别的实现一节中,我们提到了锁的概念,锁是实现事务并发的关键。其实,锁的概念不仅仅出现在数据库中,在大多数的编程语言中也存在,譬如Java中的synchronized,C#中的lock等,所以对于开发同学来说应该是不陌生的。但是数据库中的锁有很多花样,一会是行锁表锁,一会是读锁写锁,又一会是记录锁意向锁,概念真是层出不穷,估计很多同学就晕了。在讨论传统的隔离级别实现的时候,我们就提到:通过对锁的类型(读锁还是写锁),锁的粒度(行锁还是表锁),持有锁的时间(临时锁还是持续锁)合理的进行组合,就可以实现四种不同的隔离级别;但是上一篇博客中并没有对锁做更深入的介绍,我们这一篇就来仔细的学习下MySQL中常见的锁类型。这是《解决死锁之路》系列博文中的一篇,你还可以阅读其他几篇:学习事务与隔离级别了解常见的锁类型掌握常见SQL语句的加锁分析看懂死锁日志总结死锁模式一、表锁vs.行锁在MySQL中锁的种类有很

MySQL 2017-11-20 发布
14 浏览

Mysql(视图-索引)

--外键条件1.外键要存在:首先必须保证表的存储引擎是innodb。如果不是innodb,能成功但是没有约束效果!2.外键字段的字段类型(列类型)必须与父表的主键类型完全一致3.一张表的外接名字不能重复4.增加外键的字段(数据已经存在),必须保证数据与附表主键要求对应----外键约束外键的作用!外键约束有三种约束模式:都是对父表的约束district:严格模式(默认的人)父表不能删除或者更新一个已经被子表数据的引用的记录cascade:级联模式对应子表关联的数据也跟着呗删除setnull:置空模式对应的数据(外键字段)被置空foreignkey(外键字段)references父表(主键字段)ondelete模式update模式;-------联合查询将多次查询(多条select语句),在记录上进行拼接(字段不会增加)--【基本语法】:多条select语句结构:每一条select语句获取的字节数必须严格一致select语句1union[union选项]select语句2...union选项:

MySQL 2017-11-20 发布
AD 友情赞助
30 浏览

Mysql (高级查询)

@作者Stone的博客www.1314sl.com-----字段属性:主键:primarykey主键唯一约束;不能重复在创建表的时候,在后面加primarykey关键字--追加主键altertable表名modify字段名primarykeyaltertable表名addprimarykey(字段名);--更新&删除主键altertable表名dropprimarykey;--主键分类idintprimarykeycomment'逻辑主键'------自动增长不给值或者给NULL的时候,会自动被系统+1操作--自增长通常跟主键搭配auto_increment1.任何一个字段要做自增长前提是本身是一个索引(Key拦有值

MySQL 2017-11-20 发布
15 浏览

MySQL · 最佳实践 · 分区表基本类型

MySQL分区表概述随着MySQL越来越流行,Mysql里面的保存的数据也越来越大。在日常的工作中,我们经常遇到一张表里面保存了上亿甚至过十亿的记录。这些表里面保存了大量的历史记录。对于这些历史数据的清理是一个非常头疼事情,由于所有的数据都一个普通的表里。所以只能是启用一个或多个带where条件的delete语句去删除(一般where条件是时间)。这对数据库的造成了很大压力。即使我们把这些删除了,但底层的数据文件并没有变小。面对这类问题,最有效的方法就是在使用分区表。最常见的分区方法就是按照时间进行分区。分区一个最大的优点就是可以非常高效的进行历史数据的清理。分区类型目前MySQL支持范围分区(RANGE),列表分区(LIST),哈希分区(HASH)以及KEY分区四种。下面我们逐一介绍每种分区:RANGE分区基于属于一个给定连续区间的列值,把多行分配给分区。最常见的是基于时间字段.基于分区的列最好是整型,如果日期型的可以使用函数转换为整型。本例中使用to_days函数CREATETABLEmy_range_datet

MySQL 2017-11-21 发布
11 浏览

MySQL · 引擎特性 · TokuDB hot-index机制

所谓hot-index就是指在构建索引的过程中不会阻塞查询数据,也不会阻塞修改数据(insert/update/delete)。在TokuDB的实现中只有使用“createindex“方式创建索引的情况下才能使用hot-index;如果使用“altertableaddindex”是会阻塞更新操作的。TokuDBhandler的ha_tokudb::store_lock判断是createindex方式创建索引并且只创建一个索引会把lock_type改成TL_WRITE_ALLOW_WRITE,这是一个特殊的锁类型,意思是在执行写操作的过程允许其他的写操作。TokuDB提供了session变量tokudb_create_index_online,在线开启或者关闭hot-index功能。THR_LOCK_DATA**ha_tokudb::store_lock(THD*thd,THR_LOCK_DATA**to,enumthr_lock_typelock_type){if(lock_type!=TL_IGNORE

MySQL 2017-11-21 发布
AD 友情赞助
16 浏览

MySQL高级-查询与索引优化

性能下降SQL慢、执行时间长、等待时间长查询语句写的烂索引失效单值索引复合索引关联查询太多join(设计缺陷或不得已的需求,除非你能干的过你的产品经理)服务器调优及各个参数设置(缓冲、线程数等)常见通用的Join查询SQL执行顺序手写手写SQL顺序SELECTDISTINCTFROMJOINONWHEREGROUPBYHAVINGORDERBYLIMIT机读(MySQL读取顺序)机读顺序FROMONJOINWHERE

MySQL 2017-11-21 发布
11 浏览

USE DB导致MySQL大堵塞故障?

一、故障描述今天一个朋友遇到数据库遇到一个严重的故障,故障环境如下:MYSQL5.6.16RR隔离级别GITD关闭表现如下:usedb不能进入数据库showtablestatus不能查询到表信息schema.processlist来看有大量的Waitingfortablemetadatalock情急之下他杀掉了一大堆线程后发现还是不能恢复,最后杀掉了一个没有及时提交的事物才恢复正常。也仅仅留下了如下图的一个截图:二、故障信息提取还是回到上图,我们可以归纳一下语句类型如下:1、CREATETABLEAASSELECTB其STATE为sendingdata2、DROPTABLEA其STATE为Waitingfortablemetadatalock3、SELECT*FROMA其STATE为Waitingfortablemetadatalock4、SHOWTABLESTATUS[like'A']其STATE为Waitingfortablemetada

MySQL 2017-11-21 发布
18 浏览

Linux系统磁盘空间不足Zabbix服务器数据库迁移

今天登陆Zabbix,发现zabbix-server磁盘已经超过了80%,发出了告警,如图:登入服务器一看,使用#ll-Shil发现以下几个数据表太大了,占用了磁盘空间很多:在mysql里查看也是这样(我的zabbix的databases就叫zabbix):mysql>selecttable_name,(data_length+index_length)/1024/1024astotal_mb,table_rowsfrominformation_schema.tableswheretable_schema='zabbix';+----------------------------+---------------+------------+|table_name|total_mb|table_rows|+----------------------------+---------------+------------+|events

MySQL 2017-11-21 发布
AD 友情赞助
16 浏览

Mysql 入门

认识mysql数据库原地址:http://www.1314sl.com数据库基础:1.什么是数据库?数据库:database存储数据的仓库数据库:高效的存储和处理数据的介质2.数据库的分类分为两种:关系型数据库(SQL)非关系型数据库(NOSQL:notonlySQL)3.不同的数据库阵营中的产品?关系型的数据库大型:oracleDB2中型:SQL-SERVER,MYsql小型:access等非关系型数据库:memcached,mongodb,redis4.区别?关系型数据库:安全(保存磁盘,基本不可能丢失)容易理解非关系型数据库:效率高,不安全(断电丢失)d----关系型数据库---------1.什么是关系型数据库?是一种建立在关系模型(数据模型)上的数据库。模型包含三个方面数据结构:二维表(列和行

MySQL 2017-11-21 发布
16 浏览

Mysql 进阶()数据类型)

----数据类型(列类型)整数型和小数型@作者原地址:www.1314sl.com--整数型五类:tinyint--迷你型最多为256种(常用)smallint--小整型最多65536种2个字节mediumint--中整型使用3个字节数存储int--标准整形,使用4个字节存储(常用)bigint--大整型使用8个字节--------小数型会四舍五入浮动型:小数点浮动,精度有限,会丢失精度定定型:小数点固定,精度固定,不会丢失精度--------浮点型float4double8------定点型不会四舍五入查看警告:showwarnings;--------时间日期类型datetime:时间日期date:日期time:时间(段)timestamp:时间戳-

MySQL 2017-11-21 发布
17 浏览

Golang分布式ID生成服务

周末花了一晚上的时间,用Go写了一个ID生成服务,Github地址:go-id-alloc。分布式ID生成,就我来看主要是2个流派,各有利弊,没有完美的实现。1,snowflake流派。它用于twitter的微博ID,因为是timeline按发布时间排序,所以这个算法是用毫秒时间戳作为ID的左半部,从而可以实现按时间有序。像新浪微博也是在使用类似的ID生成算法,snowflake的好处是去中心化,但是依赖时钟的准确性,最差的情况是时钟发生了回退,那么ID就会重复;而如果不开启NTP同步时钟,那么不同节点分配的时间不同,也会影响feed流的排序,所以在我看来只能说基本可用,一旦时钟回退比较大的区间,服务是完全不可用的。美团在这方面做了一些工作,主要还是在发现回退以及报警方面的事情,可以参考:Leaf—美团点评分布式ID生成系统。2,mysql流派。该流派使用广泛,基本原理就是mysql的自增主键。最初为了扩展性能,会通过部署多台mysql,为每个mysql设置不同的起始id,从而实现横向扩展性。mysq

MySQL 2017-11-21 发布
AD 友情赞助
14 浏览

MySQL Connection Error: (2002) Connection refused

最近一直有事没看博客,直到昨晚Google给发了封邮件,说检测到服务器上的错误呈现增加趋势乘今天有点空闲,上了服务器看看。发现wordpress和mysql这两个dockercontainer都是正常运行,没挂掉。按照以前的套路dockerrestartmysqldockerrestartwordpress结果不行,看来不是小问题了。针对这两个docker分别用dockerlogs命令查看了日志,mysql的没发现什么比较明显的错误报告,但是wordpress里面就满屏都是了Warning:mysqli::mysqli():(HY000/2002):Connectionrefusedin-online10MySQLConnectionError:(2002)Connectionrefused上网找了半天,发现有人说可以通过重启docker来修复试了一下,我的服务器是CentOS的,命令如下:servicedockerstopservicedockerstart重

MySQL 2017-11-21 发布
12 浏览

实战项目——mysql主从架构的实现

一主一从1.1环境准备:centos系统服务器2台、一台用户做Mysql主服务器,一台用于做Mysql从服务器,配置好yum源、防火墙关闭、各节点时钟服务同步、各节点之间可以通过主机名互相通信1.2准备步骤:1)iptables-F&&setenforce清空防火墙策略,关闭selinux2)拿两台服务器都使用yum方式安装Mysql服务,要求版本一致3)分别启动两台服务器mysql服务,确保服务正常架构图:1.3实现步骤:1.3.1配置master主服务器对master进行配置,包括打开二进制日志,指定唯一的servrID。例如,在配置文件加入如下值server-id=1//配置server-id,让主服务器有唯一ID号log-bin=mysql-bin//打开Mysql日志,日志格式为二进制skip-name-resolve//关闭名称解析,(非必须)1.3.2创建复制帐号在Master的数据库中建立一个备份帐户:每个slave使用标准的MySQ

MySQL 2017-11-21 发布
15 浏览

MySQL Too Many Connection

记录一次线上事故defget(self,request,topic=None,book=None):key=key_of_user_most_book(request.user.pk)result=cache.get(key)ifresult:returnResult(data=result)half_year_ago=datetime.datetime.now()+datetime.timedelta(days=-180)user_book=UserBook.objects.filter(user_id=request.user.pk)user_book_ids=[userbook.book.idforuserbookinuser_book]most_book=UserBook.objects.all().filter(date__gte=half_year_ago).exclude(book_id__in=user_book_ids).values('book').annotate(inde

MySQL 2017-11-21 发布
17 浏览

RDS (MySQL/MariaDB) 支援 t2、r4 以及 m4 的新機種

這個大家等好久了,尤其MySQL常遇到需要用記憶體換效能的情境:「AmazonRDSforMySQLandMariaDBSupportsR4,T2andM4InstanceTypes」。先前t2最大只能開到t2.large(8GBRAM),對於需要大量記憶體運算的SQLquery,就有機會被MySQL使用filesort寫到硬碟裡面暫存了。這次支援這些instancetype,開發環境至少有選擇可以開到t2.2xlarge(32GBRAM)跟他拼。而r4應該是正式環境期待已久的instancetype了。r3最大是r3.8xlarge(244GB),跟r4最大的r4.16xlarge(488GB)剛好差了一倍。m4就比較微妙了,順便補上去的感覺...不過應該還是會有應用會剛好用到。不過還是期待前陣子出來的c5,對於寫出很驚人的SQLquery,在MySQL內跑大量運

MySQL 2017-11-21 发布
12 浏览

Mysql的学习笔记(一)--检验数据库是否安装成功以及一些入门的简单的dos命令

一:如何检验数据库是否安装成功:1:以管理员的身份打开命令提示符,具体如何用管理员的身份打开请参考下面https://jingyan.baidu.com/article/e73e26c0f87c2424adb6a7f1.html2:打开之后在mysql的bin目录下面输入:mysqld--install输出的信息为Install/RemoveoftheServiceDenied因为我已经安装成功了所以显示的是这个。3:之后输入:netstartmysql表示安装成功。全程用管理员身份打开.二:安装Mysql图形工具请参考下面的博客http://blog.csdn.net/qq_19891827/article/details/53995079二:一些入门的操作Mysql数据库的命令1:创建数据库:先进入Mysql的安装目录,我的是C:\ProgramFiles\MySQL\MySQLServer5.7\bin2:然后数据mysql-uroot-p进入Mysql中,因为只有

MySQL 2017-11-21 发布
13 浏览

MariaDB ColumnStore 1.1.2 GA

MariaDBColumnStore是在MariaDB10.1基础上移植了InfiniDB4.6.2构建的大规模并行,高性能,压缩,分布式开源列式存储引擎,类似收费产品Infobright。它设计用于大数据离线分析,用来抗衡Hadoop。你可以使用标准SQL语句进行查询,支持目前流行的sqlyog/navicat客户端工具连接,对业务方使用没有任何的不便,并且你不需要创建任何索引,不需要修改业务方的复杂SQL(自身就支持复杂的关联查询、聚合、存储过程和用户定义的函数),你唯一要做的就是把数据导入到ColumnStore里,就没你事了。这对一家没有Hadoop工程师的公司来说,MariaDBColumnStore会是一个更好的替代产品。NotablechangesBetareleaseoftheStreamingDataAdapters:Outofboxadaptersfordataintegrationbetweenvariousdatasourcesforspecificusecase

MySQL 2017-11-22 发布
17 浏览

2017 SQL Server:新消息、Linux版本缺失功能以及未来展望

SQLServer2017可运行于Windows与Linux之上微软公司总经理RohanKumar在接受采访时表示:“这是我们公司的一个里程碑。”该里程碑指的正是立足Linux平台发布的SQLServer。他还在本届于奥兰多举办的Ignite大会上将SQLServer称为“微软公司最重要的服务器产品”。SQLServer2017将同时面向Windows与多种Linux版本发布,具体包括:RedHatEnterpriseLinux7.3、SUSELinuxEnterpriseServer12、Ubuntu与Docker。另外,该产品需要3.25GB或更高的内存容量,且该产品的官方Docker镜像基于Ubuntu16.04。微软方面的移植工作围绕一套名为SQLPAL(平台抽象层)的兼容层进行的,该兼容层可确保SQL服务器中所使用的Windows库子集能够在Linux平台上运行。另外,即使在Windows这片“根据地”上,SQLServer同样通过一套代号为SOS(SQL操作平台)的平台执行其自身内存与线程管

SQL Server 2017-09-29 发布
17 浏览

Eclipse连接SQL Server 2008数据库 以及问题总结

Eclipse中使用SQLserver2008数据库一、准备材料要能够使用数据库就要有相应的JDBC,所以我们要去Microsoft官网下载https://www.microsoft.com/zh-cn/download/details.aspx?id=11774二、配置SQLserver2008请先确保已经设置好了sa,如果不是,可以参照下面链接修改http://jingyan.baidu.com/article/8cdccae9452b3c315513cd52.html然后重启数据库,重启完毕后,接下来使用命令测试1433端口是否打开。接着开始菜单→运行cmd→在命令提示符下输入:telnet127.0.0.11433,(注意telnet与127之间有空格,1与1433之间有空格)若提示“不能打开到主机的连接,在端口1433:连接失败”,则说明1433端口没有打开,需要重新进行以上配置。如果是显示telnet不是内部命令,则按照图后步骤进行设置,若

SQL Server 2017-10-02 发布
AD 友情赞助