![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#6
|
||||
|
||||
|
Cita:
Aunque es cierto que FB por ser una BD servidora tiene mas funcionalidad, el problema que se expone realmente como lo va a ser mejor? En *CUALQUIER* motor de BD es el mismo y exacto problema. Esto es un caso patologico para cualquier BD relacional: 1- Hay muchos registros 2- Es Texto 3- Lo que se busca esta en cualquier parte del campo 4- No hay indice Por lo tanto, hay un TABLE SCAN forzado. Y es mas, apuesto (aun sin hacer pruebas) que SQLITE es mas rapido que cualquier otro motor *precisamente* porque es una BD local y no una servidor que tiene que hacer todo por protocolos de red remotos. Ademas, el usar un indice aqui dificilmente va a servir de NADA: http://stackoverflow.com/questions/9...ebird-database http://web.utk.edu/~jplyon/sqlite/SQ...ation_FAQ.html FB & Sqlite (Y no veo que BD sea capaz) tienen el mismo problema al hacer busquedas donde el texto a encontrar estan en cuaquier parte, y solo (posiblemente) pueden usar indice si el LIKE es asi: 'Prefijo%', pero falla si es asi: '%Sufjio' o peor '%QuienSabe%'. Asi que hacer un cambio de codigo/bd/tecnologia por esto solo no servira de mucho. Cual es la solucion? Una idea se da en: http://web.utk.edu/~jplyon/sqlite/SQ...ation_FAQ.html
La otra, mas simple es usar Full Text Search (un punto extra por Sqlite: FB no tiene una solucion FTS INTEGRADA): https://www.sqlite.org/fts3.html Con esto, las busquedas se resuelven en milisegundos, con el trade-off de que la BD crecera un poco mas por el uso de FTS. El asunto es que como dice la teoria, uno escoje optimizar TAMAÑO o optimizar TIEMPO y no se puede ambas, asi que aparte de hacer malabares con los querys, usar FTS o encontrar una forma de almacenar el texto emulando una estructura de datos (ej: Cada palabra se guarda en una tabla separada con relacion a la tabla donde esta el texto "grande", o se usa algo similar a un ROPE (https://en.wikipedia.org/wiki/Rope_(data_structure)) u otra cosa) no hay vuelta con esto.
__________________
El malabarista. |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| SQLite + String + Dbcombobox = (MEMO) ERROR | Furyxe | SQL | 7 | 01-02-2012 15:49:28 |
| buscar una subcadena en un campo | vroa74 | SQL | 1 | 23-10-2007 20:55:30 |
| Campo memo tabla escribirlo en componente Memo | Sayuri | Conexión con bases de datos | 2 | 18-08-2005 13:58:01 |
| Búsquedas en campos MEMO | ingacg | Conexión con bases de datos | 1 | 05-12-2003 10:35:23 |
| AYUDA Busquedas lentas | st7 | Conexión con bases de datos | 3 | 14-05-2003 04:30:01 |
|