paint-brush
MariaDB'de Geçici Tablolar Nasıl Kullanılır?ile@alejandroduarte
403 okumalar
403 okumalar

MariaDB'de Geçici Tablolar Nasıl Kullanılır?

ile Alejandro Duarte4m2024/05/02
Read on Terminal Reader

Çok uzun; Okumak

Geçici tablolar geçici veri işlemleri için kullanışlıdır. Geçici bir tablo yalnızca oluşturulduğu oturum süresince mevcuttur ve diğer oturumlar onu göremez. Örneğin veritabanımızdaki 'ürünler' adlı bir tabloyu düşünün. 'Ürünlerin' yapısını taklit eden geçici bir tablo oluşturabiliriz
featured image - MariaDB'de Geçici Tablolar Nasıl Kullanılır?
Alejandro Duarte HackerNoon profile picture

MariaDB'de geçici tabloların nasıl çalıştığını keşfedelim. Öncelikle sunucuya bağlanmamız gerekiyor. Örneğin (kendi bağlantı ayrıntılarınızı kullanın):

 mariadb -h 127.0.0.1 -u root -p"RootPassword!" --database demo


Şimdi bir şeye dikkat çekmek için standart (kalıcı) bir tablo oluşturalım. İşte nasıl:

 CREATE TABLE t ( c INT );


Bu tablo, t , istemciden çıktıktan sonra bile veritabanında kalmaya devam edecek:

 exit


SHOW TABLES; t tablosu hala listelenecektir:

 mariadb -h 127.0.0.1 -u root -p"RootPassword!" --database demo
 SHOW TABLES;
 +----------------+ | Tables_in_demo | +----------------+ | t | +----------------+


Bütün bunlar oldukça açık, ama şimdi bu tabloyu yeniden oluşturalım ve farklı bir şey deneyelim:

 CREATE OR REPLACE TEMPORARY TABLE t ( c INT );


TEMPORARY anahtar kelimesine dikkat edin. Bu tabloyu oluşturduktan sonra SHOW TABLES; , listede görünür. İçine veri ekleyebilir, sorgulayabilir ve diğer tablolarla birleştirebiliriz. Geçerli oturum sırasında normal bir tablo gibi davranır. Ancak istemciden çıkarsak, yeniden bağlanırsak ve SHOW TABLES; yine geçici tablo t listelenmeyecektir.


Geçici bir tablo yalnızca oluşturulduğu oturum süresince mevcuttur ve diğer oturumlar onu göremez.

Geçici Tablolar için Kullanım Örneği

Geçici tablolar, geçici veri işlemleri için oldukça kullanışlıdır. Örneğin, veritabanımızdaki products adlı bir tabloyu düşünün:

 CREATE TABLE products ( id INT NOT NULL AUTO_INCREMENT, code VARCHAR(100) NOT NULL, name VARCHAR(250) NOT NULL, description TEXT DEFAULT NULL, PRIMARY KEY (id), UNIQUE KEY code (code) )


products yapısını taklit eden geçici bir tablo oluşturabiliriz:

 CREATE TEMPORARY TABLE t LIKE products;


Bunu aşağıdakileri çalıştırarak doğrulayabiliriz:

 DESCRIBE t;
 +-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | code | varchar(100) | NO | UNI | NULL | | | name | varchar(250) | NO | | NULL | | | description | text | YES | | NULL | | +-------------+--------------+------+-----+---------+----------------+


Başlangıçta t boş olacaktır. Ancak products bazı verileri t aktarmak istediğimizi varsayalım. Koduna yalnızca 0 rakamını içeren ürünleri dahil etmek istediğimizi varsayalım:

 INSERT INTO t SELECT * FROM products WHERE code LIKE '%0%';


Bu komutu çalıştırdıktan sonra geçici tabloyu sorgularsak t :

 SELECT * FROM t;
 +----+--------+------------------+---------------------------------------------------+ | id | code | name | description | +----+--------+------------------+---------------------------------------------------+ | 1 | BG2024 | BugBlaster | Eradicates software bugs with a single scan. | | 3 | FW001 | FireWhale | An oversized, comprehensive firewall solution. | | 4 | CLD404 | CloudNine Finder | Find your way back from cloud outages and errors. | +----+--------+------------------+---------------------------------------------------+

Filtrelenmiş verileri görüyoruz.

Çözüm

Geçici tablolar, kalıcı veri deposunu etkilemeden geçici işleme için verileri işlemenin güçlü bir yolunu sunar. Verilerin geçici olarak değiştirilmesi veya dönüştürülmesi gereken senaryolarda özellikle kullanışlıdırlar. Bu tür veri işleme için kalıcı tabloları kullanabilirsiniz ancak geçici tablolar, otomatik temizlemeye, daha az adlandırma çakışması riskine, izolasyona ve güvenliğe ve sorgu performansı için kaynak yönetimine ihtiyaç duyduğunuzda kullanışlıdır.