ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Igor Sapego <isap...@apache.org>
Subject Re: PHP and Apache Ignite - very slow query
Date Tue, 12 Dec 2017 09:52:05 GMT
Do you test MySql through PHP and ODBC as well?
Have you "warmed up" the JVM prior testing?

Also, I can see code which is not related to Apache Ignite
but can take a lot of time, i.e. printing of 60500 records.

Best Regards,
Igor

On Tue, Dec 12, 2017 at 11:37 AM, bagsiur <radoslaw.andraszyk@gmail.com>
wrote:

> Firstly, sorry for my English.
>
> I start to use Apache Ignite with PHP (PDO, UnixODBC, Ignite ODBC driver).
> I
> successfully installed it and configured Ignite, DSN and ODBC on my linux
> server (Debian). I installed php-odbc extension and everything looks well.
>
> I start Apache Ignite by: ./bin/ignite.sh php-ignite.xml where
> php-ignite.xml is my config(default config + odbc enable):
>
> <beans
> xmlns="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:util="http://www.springframework.org/schema/util"
>    xsi:schemaLocation="
>     http://www.springframework.org/schema/beans
>     http://www.springframework.org/schema/beans/spring-beans.xsd
>     http://www.springframework.org/schema/util
>     http://www.springframework.org/schema/util/spring-util.xsd">
>    <bean id="ignite.cfg"
> class="org.apache.ignite.configuration.IgniteConfiguration">
>
>
>    <property name="odbcConfiguration">
>        <bean
> class="org.apache.ignite.configuration.OdbcConfiguration"></bean>
>    </property>
> </bean>
>
> I wrote a simple PHP script to connect with Ignite by PDO and put some
> custom data in it:
>
> <?php
>
> try {
>
>     $db = new PDO('odbc:Apache Ignite');
>     $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
>
>     $sql = 'CREATE TABLE IF NOT EXISTS test_md5 (id int PRIMARY KEY, md5_1
> VARCHAR, md5_2 VARCHAR, md5_3 VARCHAR, md5_4 VARCHAR, md5_5 VARCHAR, md5_6
> VARCHAR, md5_7 VARCHAR, md5_8 VARCHAR, md5_9 VARCHAR) WITH
> "atomicity=transactional,cachegroup=somegroup"';
>
>     $db->exec($sql);
>
>     for($i=0; $i<=1000000; $i++){
>         $md5 = md5($i);
>         $sql = "INSERT INTO test_md5 (id, md5_1, md5_2, md5_3, md5_4,
> md5_5,
> md5_6, md5_7, md5_8, md5_9) VALUES ($i, '$md5', '$md5', '$md5', '$md5',
> '$md5', '$md5', '$md5', '$md5', '$md5');";
>         $db->exec($sql);
>     }
>
>
> } catch (PDOException $e) {
>     print "Error!: " . $e->getMessage() . "\n";
>     die();
> }
>
> On this point everythink looks nice. Data is set to the cluster. Now I wont
> to do some tests, to check if Apache Ignite is faster solution for big data
> then MySQL. This is my test (simple select only):
>
> <?php
>
> error_reporting(E_ALL);
> $startTime = microtime(true);
>
> try {
>
>     $ignite = new PDO('odbc:Apache Ignite');
>     $ignite->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
>
>     $nRows = $ignite->query('select count(*) from
> test_md5')->fetchColumn();
>     echo 'Rows count: '.$nRows.'<br><br>';
>
>     $stmt = $ignite->prepare("select * from test_md5 limit 60500,10");
>     $stmt->execute();
>     $rows = $stmt->fetchAll();
>
>     foreach($rows as $item){
>         echo 'id: '.$item['ID'].' - md5: '.$item['MD5_1'].'<br>';
>     }
>
>
> } catch (PDOException $e) {
>     print "Error!: " . $e->getMessage() . "\n";
>     die();
> }
>
> echo "<br><br>Speed test:  " . number_format(( microtime(true) -
> $startTime), 4) . " Seconds\n";
>
> Results: Speed test: 1.3717 seconds My question is: Why does Apache Ignite
> work so slow?
>
> When I do the same with MySQL, results are much faster: Speed test: 0.0019
> seconds
>
> Of course this is a simple test but I wan't to use Apache Ignite to work
> with big data.
>
> How can I configure Ignite corectly?
>
> what am I doing wrong?
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Mime
View raw message