Merhaba,

Kuyruk sistemi en basit haliyle ne işe yarar; yapılacak işin, o an için bir
yere yazılıp (iş akışını engellememek için) daha sonra uygun vakitte
yazılan yerden okunarak işleme konmasına.

Bu durumda olay bir yerlere *işlem'*i yazarken durmamaktan geçiyor....
MySQL de INSERT
DELAYED<http://dev.mysql.com/doc/refman/5.5/en/insert-delayed.html>bunun
bir çözümü olabilir. (MyISAM)

Gelelim lock olayına;
MySQL de Tablo tipine göre kilitleme işlemi değişiklik göstermektedir.
  InnoDB için row-level
  MyISAM için table-level
kilitleme yapılır.

Bu iki kilitleme arasındaki fark için bir sorun ve verilen cevaplar iş
görecektir
http://dba.stackexchange.com/questions/21075/way-to-prevent-queries-from-waiting-for-table-level-lock


"`messages` tablosuna saniyede çok sayıda insert yapıldığını düşünürsek
yaptığım sorgu bitmeden başka bir mysqlClient veya thread insert yapabilir
mi?"

Yapmasını istemiyoranız *transaction* içinde işlemi yapmalısınız, veya
tutarlılığı kendiniz sağlamalısınız. Mesela tabloda *datetime* alanı olur.
Buraya göre *select* sorgunuzu yaparsanız, *WHERE* koşuluna yazdığınız "*
datetime*"'ı başka bir yere yazar daha sonra tekrar burdan okuyup o
tarihten sonraki *X* kaydı çekebilirsiniz. Arada yapılan *insert* işlemleri
sizi etkilemez. Çünkü işleri belirli bir *tarihe* göre çekip
kullanıyorsunuz.

transaction desteklemeyen engine için, tutarlılık sağlamak için tabloya *
Kilit* koyabilirsiniz. (tabi başka sorunlara yol açacaktır.)

Bu işler böyle iken bu sorunların çözümü için üretilen MQ sistemleri
mevcuttur.

Kuyruk sistemi olarak ne kullanılabilir ?
Bununla ilgili daha önce bir konuşma geçmişti çok faydalı olacağını
düşünüyorum.
http://friendfeed.com/umutgokbayrak/7e6d18a5/bir-suredir-zeromq-ile-epey-hasir-nesir

Umarım yardımcı olabilmişimdir.

Volkan Altan
http://volkanaltan.com/
İyi  Çalışmalar.


2012/12/30 Hakan Yalçın <[email protected]>

> Merhaba
>
> Mysql'de Union ile aşağıdakine benzer bir sorgu yapıyorum.
>
> (SELECT content FROM `messages` WHERE id=5) UNION ALL (SELECT id FROM
> `users` ORDER BY id DESC LIMIT 0, 1)
>
>
> `messages` tablosuna saniyede çok sayıda insert yapıldığını düşünürsek
> yaptığım sorgu bitmeden başka bir mysqlClient veya thread insert yapabilir
> mi?
>
> Yani kuyruk sistemi tam olarak nasıl çalışıyor? Aynı anda çalışan sorgu
> var mı yoksa bildiğimiz kuyruk sistemi mi? Biri bitmeden diğer çalışmıyor
> bekliyor gibi mi?
>
> İyi çalışmalar.
>
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
>
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap