精华内容
下载资源
问答
  • 31 12 2012解决MySQL连接很慢的问题Yinchiang | 0说实话为了这个问题,我更换了几个webserver,但是最后才发现并非是webserver的问题,而是TP配置数据库的时候没有注意到的一个问题。我不敢保证大家都会遇到这种问题...

    31 12 2012

    解决MySQL连接很慢的问题

    Yinchiang | 0

    说实话为了这个问题,我更换了几个webserver,但是最后才发现并非是webserver的问题,而是TP配置数据库的时候没有注意到的一个问题。我不敢保证大家都会遇到这种问题,但事实上我遇到了,从xampp1.7到xampp1.8都是这个问题,起初我认为是xampp的问题,遂更换官方原版的apache2.2.x+PHP5.2.10版本,甚至还使用了Nginx1.2.6进行测试,问题依旧存在。后来使用原生态访问mysql速度依旧很慢。

    header ( 'Content-type:text/html;charset=utf-8' );

    $mysqli = new mysqli ( 'localhost', 'root', '', 'demo' );

    $mysqli->set_charset ( 'utf8' );

    $ret = $mysqli->query ( "SELECT `title` FROM `tb_news` LIMIT 119020,10" );

    while ( $row = $ret->fetch_assoc () ) {

    echo $row ['title'] . '
    ';

    }

    将’localhost’,改成127.0.0.1就解决了,PS大家在本地使用数据库的时候不太建议使用localhost这样来访问或者连接,应该采用实体的IP(127.0.0.1)来访问比较好!

    最近更新:2013-03-15 22:43:44

    刚看到一篇文章上面写道

    skip-name-resolve

    选项就能禁用DNS解析,连接速度会快很多。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。

    在windows下进行如下修改:

    在mysql的安装目录下找到 my.ini 文件, 在 [mysqld] 下增加参数 skip-name-resolve.

    发表评论电子邮件地址不会被公开。 必填项已用*标注

    评论

    姓名 *

    电子邮件 *

    站点

    评论审核已启用。您的评论可能需要一段时间后才能被显示。

    展开全文
  • 在pycharm中如何与数据库建立连接呢,接下来我会详细的演示一下步骤 首先需要在pycharm中我们需要导入pymysql包 步骤一:创建一个项目,在项目中创建一个python文件(在这里我的python文件名叫mysql) ...

    在pycharm中如何与数据库建立连接呢,接下来我会详细的演示一下步骤

    首先需要在pycharm中我们需要导入pymysql包

    步骤一:创建一个项目,在项目中创建一个python文件(在这里我的python文件名叫mysql)

     步骤二:点击最下面的Terminal,输入pip install pymysql

     步骤三:安装成功后输入pip list查看是否安装成功

     pymysql已经存在,这就证明我们已经安装成功

    步骤四,在文件中导入pymysql包

     

     

    步骤五:创建一个connection对象(输入数据库用户名,密码,以及所要操作的数据库,在这里我选的数据库是info,大家也可以在自己的数据库中选择其他数据库)

     在这里我们要注意我们没有输host,因为它默认是localhost,所以可以省略,port默认值是3306,也可以省略

    步骤六:创建一个curso对象

     

    步骤六:使用execute()方法

     在这个方法中我们可以输入所要执行的mysql语句,我是要查询学生表的信息(注意execute的返回值是输入这个SQL语句时所影响的行数)

     结果如下图:

     通过结果我们可以看出影响了5行

    步骤七:使用fetchall()方法

    那么我们应该如何查看查询后的结果呢?这就需要用到另一个方法fetchall()

    fetchall()执行查询时,获取结果集的所有行,一行构成一个元组,再将这些元组装入一个元组返回

     结果如图:

     可以看出数据库中的数据就这样被显示出来了,总共有5行每一行的结果被装在一个元组中,生成5个元组,然后在将这5个元组放在一个元组中

    注意在最后要使用cur.close()con.close()

     

    对于显示还有另外两种方法:

    1.fetchone()执行查询语句时,获取查询结果集的第一个行数据,返回一个元组

    2.fetchmany(n)执行查询时,获取n行,一行构成一个元组,再将这些元组装入一个元组返回

    有兴趣的话也可以尝试这两种方法看看效果如何

    展开全文
  • 连接数据库文件conn.asp-------------连接数据库文件 conn.asp-------------//建立数据库链接对象conn = Server.CreateObject("ADODB.Connection");//连接字符串connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data ...

    连接数据库文件conn.asp-------------

    连接数据库文件 conn.asp-------------

    //建立数据库链接对象

    conn = Server.CreateObject("ADODB.Connection");

    //连接字符串

    connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("test.mdb");

    %>

    ---------------------------------------------------------

    测试文件 test.asp-------------------

    test

    conn = Server.CreateObject("ADODB.Connection");

    conn.open(connstr);

    rs = Server.CreateObject("ADODB.Recordset");

    sql="select space_id,space_name from space_info where space_chart=1 and user_id=1";

    rs.Open(sql,conn,1);

    %>

    rs.close;

    rs=null;

    conn.close;

    conn=null;

    %>

    ---------------------------------------------------------

    我的网站只要操作数据库,访问速度就会变得很慢,半天打不开,有时候还会出现超时报错。asp+access,虚拟主机,已经咨询过客服应该不是虚拟主机的问题。数据库文件很小,表中只有两三条记录。

    只要“conn.open(connstr);”一执行速度就会变慢,如果加上select速度就会更慢。客服说访问数据库时占用了很多虚拟主机的资源。

    不知道是不是我的连接字符串出现了问题,希望大家帮我分析分析。

    多谢啦!

    -------------------------------

    我压缩数据库了,只有几百k,另外也不是木马的原因,我的代码重新换过,数据库也换过,都不行。

    展开

    展开全文
  • 根据综合性能,可靠性,稳定性,扩展性,易用性等因素替换成最优的数据库连接池。Druid:druid-1.0.29数据库Mysql.5.6.17替换目标:替换掉C3P0,用druid来替换替换原因:1、性能方面hikariCP>druid>tomcat-jdbc>...

    根据综合性能,可靠性,稳定性,扩展性,易用性等因素替换成最优的数据库连接池。

    Druid:druid-1.0.29

    数据库  Mysql.5.6.17

    替换目标:替换掉C3P0,用druid来替换

    替换原因:

    1、性能方面 hikariCP>druid>tomcat-jdbc>dbcp>c3p0 。hikariCP的高性能得益于最大限度的避免锁竞争。

    2、druid功能最为全面,sql拦截等功能,统计数据较为全面,具有良好的扩展性。

    3、综合性能,扩展性等方面,可考虑使用druid或者hikariCP连接池,比较方便对jdbc接口进行监控跟踪等。

    4、可开启prepareStatement缓存,对性能会有大概20%的提升。

    psCache是connection私有的,所以不存在线程竞争的问题,开启pscache不会存在竞争的性能损耗。

    psCache的key为prepare执行的sql和catalog等,value对应的为prepareStatement对象。开启缓存主要是减少了解析sql的开销。

    5、3p0历史悠久,代码及其复杂,不利于维护。并且存在deadlock的潜在风险。

    6、Druid可以打印SQL,慢查询方面的日志

    Druid 参数

    配置参数

    缺省值

    游戏服设置的值

    参数说明

    initialSize

    0

    4

    初始化连接数量

    minIdle

    0

    4

    最小空闲连接数

    maxActive

    8

    8

    最大并发连接数

    maxWait

    -1L

    60000

    获取连接时最大等待时间,单位毫秒。配置了maxWait之后,

    缺省启用公平锁,并发效率会有所下降,

    如果需要可以通过配置useUnfairLock属性为true使用非公平锁。

    timeBetweenEvictionRunsMillis

    60000

    60000

    配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒

    Destroy线程会检测连接的间隔时间

    minEvictableIdleTimeMillis

    1800000

    1800000

    配置一个连接在池中最小生存的时间,单位是毫秒

    validationQuery

    null

    select 1

    用来检测连接是否有效的sql,要求是一个查询语句

    testOnBorrow

    FALSE

    FALSE

    申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。

    testOnReturn

    FALSE

    FALSE

    归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能

    testWhileIdle

    TRUE

    TRUE

    建议配置为true,不影响性能,并且保证安全性。 申请连接的时候检测,如果

    空闲时间大于 timeBetweenEvictionRunsMillis, 执行validationQuery检测连接是否有效。

    poolPreparedStatements

    FALSE

    TRUE

    false 是否缓存preparedStatement,也就是PSCache。

    PSCache对支持游标的数据库性能提升巨大,比如说oracle。

    在mysql5.5以下的版本中没有PSCache功能,建议关闭掉。

    5.5及以上版本有PSCache,建议开启。

    maxPoolPreparedStatementPerConnectionSize

    10

    100

    要启用PSCache,必须配置大于0,当大于0时,

    poolPreparedStatements自动触发修改为true。

    单个connnection独享一个statement cache,也就是说maxOpenPreparedStatements是针对单个connection链接的

    运行原理:

    数据库连接池在初始化的时候会创建initialSize个连接,当有数据库操作时,会从池中取出一个连接。如果当前池中正在使用的连接数等于maxActive,则会等待一段时间,等待其他操作释放掉某一个连接,如果这个等待时间超过了maxWait,则会报错;如果当前正在使用的连接数没有达到maxActive,则判断当前是否空闲连接,如果有则直接使用空闲连接,如果没有则新建立一个连接。在连接使用完毕后,不是将其物理连接关闭,而是将其放入池中等待其他操作复用。 同时连接池内部有机制判断,如果当前的总的连接数少于miniIdle,则会建立新的空闲连接,以保证连接数得到miniIdle。如果当前连接池中某个连接在空闲了timeBetweenEvictionRunsMillis时间后仍然没有使用,则被物理性的关闭掉。有些数据库连接的时候有超时限制(mysql连接在8小时后断开),或者由于网络中断等原因,连接池的连接会出现失效的情况,这时候设置一个testWhileIdle参数为true,可以保证连接池内部定时检测连接的可用性,不可用的连接会被抛弃或者重建,最大情况的保证从连接池中得到的Connection对象是可用的。当然,为了保证绝对的可用性,你也可以使用testOnBorrow为true(即在获取Connection对象时检测其可用性),不过这样会影响性能。

    如果要进行SQL监控,可以加入以下代码:

    Log4j2Filter log4j2 =newLog4j2Filter();

    log4j2.setResultSetLogEnabled(false);

    log4j2.setStatementSqlPrettyFormat(false);

    log4j2.setStatementExecutableSqlLogEnable(true);

    log4j2.setDataSourceLogEnabled(false);

    log4j2.setConnectionLogEnabled(false);

    log4j2.setStatementLogEnabled(false);

    log4j2.setResultSetLogEnabled(false);

    ret.setProxyFilters(Arrays.asList(log4j2));

    闲置检测,创建连接,废弃连接清理由这三线程管理

    Daemon Thread [Abandoned connection cleanup thread]

    Daemon Thread [Druid-ConnectionPool-Create-1184124073]

    Daemon Thread [Druid-ConnectionPool-Destroy-1184124073]

    展开全文
  • 客户的一套Oracle 11.2.0.4的数据库跑在AIX 6.1上,偶尔会出现应用HANG死的现象,从数据库的角度看似乎没有什么问题:从等待事件上看:出问题当时似乎系统没有什么业务。从等待事件上看十分可以,排在第一位的是...
  • 两个表连接查询很慢,但是如果单查一个表则很快,或者连接查询其他的表也很快。查询语句(大约半秒的查询时间):SELECT * FROM member m LEFT JOIN gift g ON g.mid = m.id WHERE m.status = 0 AND m.wid = 236 ORDER...
  • 数据库连接

    2021-02-08 12:49:25
    一、数据库连接池的原理基本原理对于一个简单的数据库应用,由于对于数据库的访问不是频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是...
  • 展开全部tomcat连接池的62616964757a686964616fe58685e5aeb931333264626630方法1:连接池所要解决的问题:应用程序每一次与数据库连接都会由于网络传输和执行数据库查询而严重降低了程序的执行效率,因此我们需要...
  • 1、安装linux一些必须的包:yum install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* libevent2、安装mysql,mysql安装包需要自己下载,安装目录 /...
  • 连接池预先建立数据库连接用线程池预先创建线程总结 假设公司的领导,把我们叫到会议室,告诉我们公司有一个新的商业机会,希望我们可以迅速研发出一套面向某个垂直领域的电商系统。 在人手紧张,时间不足的情况下...
  • 本文主要向大家介绍了Oracle数据库之Linux(Centos)下jdbc连接oracle速度超的问题,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。最近在centos下写个javaswing程序,发现在linux用jdbc连接...
  • mysql数据库查询

    2021-01-19 11:40:19
    优化SQL语句MySQL日志的开启查看数据库是否开启了查询日志SHOW VARIABLES LIKE 'slow_query_log';查看数据库是否将未使用索引的SQL记录到日志中SHOW VARIABLES LIKE 'log_queries_not_using...文章周彬彬2019-...
  • 前段时间在一个老项目中经历过一个问题:一个 Dubbo 服务,启动的时候的要死,后来看日志查原因整个过程一直在初始化数据库连接。一看数据库连接参数,连接池大小:1024。 多入行晚的同学没有经历过手写 JDBC ...
  • 数据库连接池是负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。 2.为什么要使用连接池? 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用...
  • JAVA基础:JDBC优化数据库连接发布时间:2006-09-28 00:24:05来源:红联作者:连露企业数据库连接性的恰当构建是非常重要的,并且在为有限连接设备配置(Connection Limited Device Configuration(CLDC))构建应用程序和...
  • Mysql主从复制,读写分离之Mysql-proxy实现MySqL的主从复制和读写分离前面写过mysql数据库的读写分离是用Amoeba来实现的,下面来用Mysql-proxy来实现一下1、MySqL数据库的主从复制在主服务器上的操作修改配置文件/...
  • 连接close()掉,然后在创建不是浪费cpu等系统资源嘛?有没有更好的方法解决呢?大家也经常听到连接池、线程池之类的线程、池的概念,那么究竟这些概念与我们的连接有什么关系呢?下面我就想就上面的问题谈谈我的...
  • 1.访问问题1.1应用反应mysql网站打开top查看CPU是否是mysql占得较多;uptime查看负载情况;进入到mysql库中,查看进程数:show (full) processlist;1.2 开启查询日志long_query_time=1log-slow-queries = /...
  • 我正在测试最近在32位Windows 7上从MySQL 5.0升级的数据库.(我还复制了my.ini,但做了一些更改)我发现建立连接需要长时间(大约1秒).作为示例,我创建了一个非常简单的SQL脚本:select 1 as n;然后,我在批处理文件中...
  • java连接Access数据库的方法,分享给大家步骤:1.现在我们一般使用的编译环境是java SE 1.8,不支持odbc的连接方式,所以可以用jdbc的连接方式,还要在网上下载一个jdbc的驱动包。(这里用了Access_JDBC30.jar包,在...
  • 前几天一朋友联系我说他们新上的项目访问10分钟后就出现很慢的情况,让我帮他们看下。我拿到他们网站地址后开始查找问题,我分别测试了网站的IP网络情况,发现没有问题。然后我就去查看系统日志,发现一直在报一个...
  • ODBC连接数据库实例

    2021-01-19 08:01:13
    1.首先建立数据源,正常情况...配置自己的DSN,比如连接ACCESS数据库单击“添加”按钮,显示“创建新数据源”对话框。选择“Microsoft Access Driver(*.mdb)”,单击,进入下一步。随起个数据源名称(如:MyData),...
  • mysql 8创建远程访问用户[root@demo /]# mysql -u root -p #登录服务器数据库Enter password:123xxx>user mysql;>CREATE USER 'rtuser'@'%' IDENTIFIED BY 'gs@2019#';>ALTER USER 'rtuser'@'%' IDENTIFIED...
  • 数据库连接池技术有多,常用的有c3p0、dbcp、proxool、bonecp、droid等: DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池。 DBCP可以直接的在应用程序用使用,可以设置最大和最小连接连接...
  • JDBC通过这条代码方法的调用建立了一条客户端应用程序到后端数据库的物理连接。期间发生了大量的基于TCP的客户端与服务端的交互。由于跨机器的网络传输是由较大的网络开销的,所以时间花销大。传统的多线程JDBC...
  • 连接池预先建立数据库连接 用线程池预先创建线程 课程小结 在前面几节课程中,我从宏观的角度带你了解了高并发系统设计的基础知识,你已经知晓 了,我们系统设计的目的是为了获得更好的性能、更高的可用性,...
  • .net数据库连接详解

    2021-01-26 10:55:45
    ADO.NET与抽水的故事ADO.NET是微软新一代.NET数据库的访问架构,ADO是ActiveX Data Objects的缩写。ADO.NET是数据库应用程序和数据源之间沟通的桥梁,主要提供一个面向对象的数据访问架构,用来开发数据库应用程序。...
  • 主要介绍了数据库连接池技术概念,使用连接池有什么好处,以及几种常见连接池技术对比

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 141,669
精华内容 56,667
关键字:

数据库建立连接很慢