Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Fungsi tersimpan Mysql dan min groupwise

Maks groupwise tidak dijamin berfungsi. Faktanya, MariaDB memecahkannya, tetapi menyediakan pengaturan untuk mendapatkannya kembali. Ini yang saya maksud:

SELECT  *
    FROM  
      ( SELECT  ...  ORDER BY ... )
    GROUP BY ...

di mana Anda ingin yang pertama (atau terakhir) di setiap grup dari kueri dalam. Masalahnya adalah SQL bebas untuk mengoptimalkan maksud itu.

Kode maks groupwise dalam dokumen sangat tidak efisien.

Untuk mempercepat kueri, kemungkinan sedikit bantuan adalah mengisolasi Rules atau Places bagian dari klausa WHERE dan membuatnya menjadi subquery yang mengembalikan hanya PRIMARY KEY dari tabel yang sesuai. Kemudian masukkan itu ke GABUNG dengan semua tabel (termasuk GABUNG kembali ke tabel yang sama). Anda sudah memiliki "covering index" untuk subquery tersebut sehingga bisa menjadi "Using index" (dalam jargon yang digunakan oleh EXPLAIN).

Apakah innodb_buffer_pool_size disetel ke sekitar 70% dari RAM yang tersedia?

BIGINT membutuhkan 8 byte; Anda mungkin bisa hidup dengan MEDIUMINT UNSIGNED (0..16M). Lebih kecil --> lebih dapat disimpan dalam cache --> lebih sedikit I/O --> lebih cepat.

Sepasang DOUBLE untuk lat/lng membutuhkan 16 byte. Sepasang FLOAT akan membutuhkan 8 byte dan memiliki resolusi 6 kaki / 2m. Atau DECIMAL(6,4) untuk garis lintang dan (7,4) untuk garis bujur untuk 7 byte dan resolusi 52 kaki / 16m. Cukup baik untuk "toko", terutama karena Anda menggunakan 'persegi' bukan 'lingkaran' untuk jarak.

Kode untuk "temukan yang terdekat ..." sulit untuk dioptimalkan. Inilah yang terbaik yang saya buat:http://mysql.rjweb.org/doc .php/latlng




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Simpan gambar yang dikodekan base64 ke database sisi server sebagai BLOB

  2. Beralih ke Pernyataan yang Disiapkan

  3. berapa max join table di mysql? dan bagaimana cara menghitungnya?

  4. Menginstal Percona XtraDB Cluster di CentOS 7

  5. Sisipkan MySQL pada pembaruan duplikat untuk kunci non-PRIMARY