PHP, SQL Optimizasyonu

Merhaba. Daha önce PHP’yi bir proje geliştirecek düzeyde kullanmamıştım ama bir hafta önce hızlıca bir sitenin veri tabanını ve kodlama dilini değiştirmem gerekti. İnternetten araştıra araştıra sonuca ulaştım ama aklıma veri tabanı optimizasyonu takıldı. Örnek olarak ana sayfam için yazdığım SQL sorguları bunlar. Sizce doğru mu yapıyorum yoksa daha iyi bir yöntemi var mı PHP’den veri tabanındaki bilgileri çekmenin?

<?php
include 'header.php';

$get_main_slider = "SELECT * FROM main_slider";
$get_result = mysqli_query($connect, $get_main_slider);
$main_slider = mysqli_fetch_all($get_result, MYSQLI_ASSOC);
mysqli_free_result($get_result);

$get_main_content = "SELECT * FROM main_content";
$get_result = mysqli_query($connect, $get_main_content);
$main_content = mysqli_fetch_assoc($get_result);
mysqli_free_result($get_result);

$get_text_slider = "SELECT * FROM text_slider";
$get_result = mysqli_query($connect, $get_text_slider);
$text_slider = mysqli_fetch_all($get_result, MYSQLI_ASSOC);
mysqli_free_result($get_result);

$get_news = "SELECT * FROM news WHERE published=1 ORDER BY pub_date DESC LIMIT 2";
$get_result = mysqli_query($connect, $get_news);
$news = mysqli_fetch_all($get_result, MYSQLI_ASSOC);
mysqli_free_result($get_result);

$get_series = "SELECT * FROM products AS p INNER JOIN product_series AS pi ON p.id = pi.series_category_id GROUP BY p.id";
$get_result = mysqli_query($connect, $get_series);
$series = mysqli_fetch_all($get_result, MYSQLI_ASSOC);
mysqli_free_result($get_result);

function custom_echo($text, $length)
{
  if(strlen($text)<=$length)
  {
    echo $text;
  }
  else
  {
    $y=substr($text, 0, $length) . '...';
    echo $y;
  }
}

mysqli_close($connect);
?>

Aslında veri tabanından veri çekmeyi bir fonksiyon yapsam daha uygun olur dimi?

Evet, daha okunabilir olur.

Veritabanini ve verinin dagilimini gormeden bir sey soylemek zor.

ODBC var, daha iyi olup olmadigi sana kalmis ama.

Yukarida gordugum tek sikinti ayni 3-4 satirin tekrar etmesi, free’nin unutulabilme ihtimali. Fonksiyon hepsini cozer.

Bi de “veritabani” denilmesine ragmen MySQL kullanilmasi var ama ona girmeyecegim. Mumkunse PostgreSQL kullanin.