Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Mysql स्थानिक सूचकांक अप्रयुक्त

बग #76384 रिटर्न वैल्यू की स्पष्ट रूप से जांच करते समय स्थानिक इंडेक्स का उपयोग नहीं किया जाता है

कोशिश करें:

mysql> DROP TABLE IF EXISTS `geoDirections`;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE `geoDirections` (
    ->    `id` INT(11) NOT NULL,
    ->    `from` POINT NOT NULL,
    ->    `to` POINT NOT NULL
    -> ) ENGINE=InnoDB;
Query OK, 0 rows affected (0.01 sec)

mysql> ALTER TABLE `geoDirections`
    ->     ADD PRIMARY KEY (`id`),
    ->     ADD SPATIAL INDEX (`from`),
    ->     ADD SPATIAL INDEX (`to`);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> EXPLAIN SELECT `g`.`from`
    -> FROM `geoDirections` `g`
    -> WHERE
    ->       ST_Contains(ST_Buffer(
    ->           ST_GeomFromText('POINT(-2.00751 48.6547)', 4326), (0.00001 * 20)), `g`.`from`) 
    ->       AND
    ->       ST_Contains(ST_Buffer(
    ->           ST_GeomFromText('POINT(-2.05757 48.6338)', 4326), (0.00001 * 20)), `g`.`to`)\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: g
   partitions: NULL
         type: ALL
possible_keys: from,to
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 1
     filtered: 100.00
        Extra: Using where
1 row in set, 1 warning (0.00 sec)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में दिनांक सीमा विरोधों की जाँच हो रही है

  2. PHP/PDO/MySQL:MEDIUMBLOB में डालने से खराब डेटा संग्रहीत होता है

  3. SQL केवल उन पंक्तियों का चयन करें जहाँ सटीक एकाधिक संबंध मौजूद हैं

  4. एसक्यूएल अगर चयन क्वेरी शून्य है तो दूसरी क्वेरी करें

  5. स्प्रिंग में ClientDetailsServiceConfigurer के लिए JDBC का उपयोग करके क्लाइंट कैसे जोड़ें?