Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk meningkatkan kelajuan kumpulan

<p>Saya mempunyai jadual besar dengan lebih daripada 3B baris dan pertanyaan saya kini mengambil masa 3 hari untuk dilaksanakan. </p> <p>Ini adalah pertanyaan saya: </p> <pre class="brush:php;toolbar:false;">masukkan ke dalam perkataan frekuensi (perkataan, kekerapan, nama fail) pilih perkataan, kira(*) sebagai kekerapan, maks(nama fail) daripada allwordstemp kumpulan mengikut perkataan</pre> <p>Pada asasnya, pertanyaan saya adalah untuk mengumpulkan mengikut perkataan daripada jadual allwordstemp, dan saya ingin mengetahui <strong>nama fail</strong> apabila kekerapan = 1, itulah sebabnya saya menambah max(nama fail), Kerana nama fail perlu dimasukkan dalam fungsi agregat, seperti maks. Jika kekerapan > 1, saya juga tidak memerlukan nilai nama fail. Kedua-dua jadual mempunyai 2 indeks pada perkataan dan nama fail. </p> <p>jadual allwordstemp (nama fail ialah fail id): </p> <pre class="brush:php;toolbar:false;">BUAT JADUAL `allwordstemp` ( `perkataan` varchar(45) LALAI NULL, `nama fail` int(11) NULL LALAI, KEY `idx_allwordstemp_word` (`word`), KEY `idx_allwordstemp_filename` (`filename`) ) ENJIN=CHARSET LALAI InnoDB=utf8;</pre> <p>jadual kata kekerapan:</p> <pre class="brush:php;toolbar:false;">BUAT JADUAL `frequencywords` ( `perkataan` varchar(45) LALAI NULL, `frekuensi` int(11) LALAI NULL, `nama fail` int(11) NULL LALAI, KEY `idx_frequencywords_word` (`word`), KEY `idx_frequencywords_frequency` (`frequency`), KEY `idx_frequencywords_filename` (`filename`) ) ENJIN=CHARSET LALAI InnoDB=utf8;</pre> <p>Terangkan pemilihan:</p> <pre class="brush:php;toolbar:false;">+----+-------------+------------ ---------------------------------------------------+----------- ---- ------------+---------+------+-----------+--- ---- ---+-------------+ |. pilih_jenis | +----+-------------+--------------+--------------- -------------------------- -----+------+------------+----------+----------- -- + |. +----+-------------+--------------+--------------- ------------------------- -----+------+------------+----------+----------- -- +</pra> <p>Bagaimanakah saya boleh membuat pertanyaan saya lebih cepat? </p>
P粉155832941P粉155832941379 hari yang lalu455

membalas semua(1)saya akan balas

  • P粉741678385

    P粉7416783852023-09-06 00:45:26

    Penapis anda nampaknya berdasarkan kekerapan, bukan perkataan atau nama fail. Jadi saya mula-mula mengindeks semua perkataan mengikut kekerapan.

    Kemudian, dengan mengandaikan kekerapan ialah integer, saya akan menambah klausa WHERE seperti ini:

    select word, max(filename)
    from allwordstemp
    where frequency = 1
    group by word

    Di atas akan memberikan anda senarai semua perkataan yang muncul sekali sahaja dalam pelbagai nama fail.

    Semoga ini membantu, dan semua yang terbaik!

    balas
    0
  • Batalbalas