数据库
edagarli
java
展开
-
PrepareStatement与Statement之间的区别
preparestatement是预编译,对于批量处理可以大大提高运行效率。如果说所使用的SQL语句是一次性的话,那么使用statement较好,因为,这样的话使用preparestatement并不会产生太大的效果,相反,可能还会在性能方面劣于statement。毕竟preparestatement对象开销比statement较大。statement每次执行sql 语句,相关数据库都要对sql语转载 2014-03-16 21:12:42 · 1182 阅读 · 0 评论 -
我们该如何设计数据库(四)
其实我一直在准备另一篇博文的基础资料,但是和朋友聊天,他问我最近在做什么,我说在做系统Log模块,并和他交流了一下,于是这篇博客就应运而生。其实我一直在准备另一篇博文的基础资料,但是和朋友聊天,他问我最近在做什么,我说在做系统Log模块,并和他交流了一下,于是这篇博客就应运而生。所有数据都可以用如下形式表述:ID,表名,列名,Value。比如转载 2013-07-01 22:16:43 · 862 阅读 · 0 评论 -
我们该如何设计数据库(五)
这次的需求是在Mongo的使用中碰到的,但是我觉得把这个需求放进传统的RDBMS中更易于理解。需求是这样的:假设你数据库使用的是Sqlserver,有一张表,500W条数据,你要做一个随机在表中选择一条数据的功能。最近真是忙翻天了,该是有三个月没写博客了。这次的需求是在Mongo的使用中碰到的,但是我觉得把这个需求放进传统的RDBMS中更易于理解。需求是这样转载 2013-07-01 22:56:38 · 852 阅读 · 0 评论 -
让数据库变快的10个建议
大多数网站的内容都存在数据库里,用户通过请求来访问内容。数据库非常的快,有许多技巧能让你优化数据库的速度,使你不浪费服务器的资源。在这篇文章中,我收录了十个优化数据库速度的技巧。0. 小心设计数据库第一个技巧也许看来理所当然,但事实上大部分数据库的问题都来自于设计不好的数据库结构。譬如我曾经遇见过将客户端信息和支付信息储存在同一个数据库列中的例子。对转载 2013-07-01 23:24:19 · 1033 阅读 · 0 评论 -
20个数据库设计最佳实践
能够最佳的使用好数据库需要扎实的基础,下面文章详细的说明了20个数据库设计的最佳实践,很适合是实习的程序员学习。使用明确、统一的标明和列名,例如 School, SchoolCourse, CourceID。数据表名使用单数而不是复数,例如 StudentCourse,而不是StudentCourses。数据表名不要使用空格。数据表名不要转载 2013-07-01 23:43:11 · 1272 阅读 · 0 评论 -
我们该如何设计数据库(一)
数据库该如何设计,一直以来都是一个仁者见仁智者见智的问题。下面来讨论一下在项目中经常碰到的用户的联系方式储存的问题。数据库该如何设计,一直以来都是一个仁者见仁智者见智的问题。对于某一种数据库设计,并不能简单的用好与不好来区分。或许真的应了那句话,没有最好,只有最适合。讨论某种数据库设计的时候,应该在某种特定的需求环境下讨论。下面来讨论一下在项目中经常碰到的用户的转载 2013-07-01 21:17:00 · 981 阅读 · 0 评论 -
在Mac系统上安装redis服务
最近打算研究一下redis,所以试试在MacOS下安装redis服务,看来并没有想象中那么困难。首先,你需要有安装Xcode 的 command Tools 才能保证编译不会出问题,试着输入make 看看是否提示命令不存在,如果没有提示命令不存在,那么应该可以安装。 帮助代码片段 - anythink.com.cn12345转载 2015-02-02 14:21:02 · 2176 阅读 · 0 评论 -
性能优化总结
性能性能问题无处不在,所以优化性能的手段很多,从用户浏览器到数据库,影响用户请求的所有环节都可以进行性能优化。浏览器- 浏览器缓存- 页面压缩- 合理布局页面 - 减少Cookie传输等等手段改善性能CDN与反向代理- 静态内容分发至离用户最近的网络服务商机房,用户最短路径获取数据- 反向代理服务器,缓存热点文件,加快请求响应速度,减轻应用服务器负载压力应用服务器- 服务器本地缓存原创 2015-09-27 22:04:35 · 613 阅读 · 0 评论 -
读写分离之Amoeba
相信初创公司,刚开始的时候,一般都是单机数据库。然而数据量上来了,你就不来不考虑数据库集群了。一般的话,读都会比写多,差不多8:2的比例,具体业务具体不同。这里就介绍下Amoeba(变形虫)。Amoeba是什么呢?Amoeba(变形虫)项目,该开源框架于2008年 开始发布一款 Amoeba for Mysql软件。这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访原创 2015-09-19 22:53:23 · 1260 阅读 · 0 评论 -
我们该如何设计数据库(三)(续)(2)
篇博客《我们该如何设计数据库(三)》写出来之后,深感自己写得不够清晰,虎头蛇尾,描述问题用了很多篇幅,而问题的解决方案及其优缺点却是一笔带过,于是就写下了这篇博客来负荆请罪。这样做的优势在于:1、使用了OO的思想来设计Model,更易于理解与后期维护。对于查看类的继承关系,VS也提供了很好的支持,比如说你可以这样看:你也可以这样看转载 2013-07-01 22:10:49 · 875 阅读 · 0 评论 -
我们该如何设计数据库(二)
本篇文章旨在讨论如何抽象(以用户作为抽象的例子),并提出一些解耦的思路。详细请见下文最近公司要开发新系统,基本决定使用ORM(高层还在犹豫,担心效率问题)。既然使用了ORM,那么自然而然的就想到了用面向对象的思想来设计数据库。本篇文章旨在讨论如何抽象(以用户作为抽象的例子),并提出一些解耦的思路。我也是第一次在实际项目中使用面向对象的思想来设计数据库,写下这篇博转载 2013-07-01 21:33:36 · 854 阅读 · 0 评论 -
如何防止sql注入
加强对用户输入的验证。 总体来说,防治SQL注入式攻击可以采用两种方法,一是加强对用户输入内容的检查与验证;二是强迫使用参数化语句来传递用户输入的内容。在SQLServer数据库中,有比较多的用户输入内容验证工具,可以帮助管理员来对付SQL注入式攻击。测试字符串变量的内容,只接受所需的值。拒绝包含二进制数据、转义序列和注释字符的输入内容。这有助于防止脚本注入,防止某些缓冲区溢出攻击。测试用户转载 2014-03-16 18:40:10 · 1328 阅读 · 0 评论 -
著名电子商务网站高并发千万级大型数据库经验之- 读写分离
由于公司的主服务器责任重大,而且满负荷跑了接近2年了,怕万一有闪失主服务器出现硬件故障后重新购买新服务器订货到货周期可能会比较长,所以公司在春节期间购买了一台更强大的新服务器来当备用服务器,购买的初衷就是防止出现硬件故障。 春节前新服务器就采购到位了,由于手上事情比较多根本忙不过来配置新服务器,春节休息期间看了一些数据同步的资料,准备把主数据库的读写分离,当初主要思路见下图。转载 2014-03-13 17:44:52 · 5358 阅读 · 1 评论 -
数据库事务隔离级别
数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现 ×: 不会出现脏读不可重复读幻读Read uncommitted√√√Read转载 2014-03-13 17:15:06 · 937 阅读 · 0 评论 -
基本的数据库增删改查
整理电脑无意间发现了这段代码,想起了自己刚入门的时候。发表出来,纪念下。 import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;pub原创 2014-03-11 23:44:42 · 964 阅读 · 0 评论 -
关于mysql 1067的错误
注意下,关于软件的错误,我们第一步要去看下日志,而不是盲目的百度,百度。据我所知这个错误网上都是INNODB引擎的错误。但是我不同。我是mysql的端口被占用了。我看了下日志。140301 17:04:48 [ERROR] Plugin 'Falcon' registration as a STORAGE ENGINE failed.140301 17:04:49 Inn原创 2014-03-01 17:13:09 · 990 阅读 · 0 评论 -
Oracle数据库查询高效分页
今天我们将谈到Oracle数据库查询高效分页,分页的控件实在很方便,以前的处理方式就是数据都拿出来,然后由控件进行处理,一般数据量不大的时候应该说感觉不出来优劣,但由于每次从数据库取的时候都是取所有的数据,肯定会增加数据库的压力,传输的数据库多了对网络带宽也会产生压力的。由于网页渲染速度的影响,在C/S程序中那种一个Grid包含几千、上万行的数据基本上在网页是无转载 2013-07-02 00:01:31 · 1458 阅读 · 0 评论 -
rownum between连用为什么得不到数据呢?
rownum在使用select查询的时候,自动生成的一串顺序号。在每返回一条数据结果的时候,rownum就自动加一。简单的说,是对结果集加的一个伪列,是oracle数据库从数据文件或缓冲区中读取数据的顺序。用>,>=,=,between...and这几个条件结果是没有数据的,因为你从缓冲区或数据文件中查询得到的第一条记录的rownum为1,则会被删除的,接着读取下一条数据,可是它的rownum又变原创 2013-07-01 23:59:34 · 1802 阅读 · 0 评论 -
我们该如何设计数据库(三)
简单的说说吧:假设为Man用户实现的是一个征婚系统,而Woman用户实现的是一个选美系统。这么说应该能理解Man和Woman的不能并同一张表的原因了吧。在《我们该如何设计数据库(二)》中,园友Jacklondon Chen提出了一些问题,大致如下:“man/woman应该设计在同一张表中。 用户表大多都设计成一个表。连分 administrator 和 user 都不应转载 2013-07-01 21:58:20 · 860 阅读 · 0 评论 -
实现高性能高并发的计数器功能
http://edagarli.logdown.com/posts/306223/performance-counters-for-high-concurrency-features-such-as-the-article-hits原创 2015-10-29 09:45:29 · 8250 阅读 · 1 评论