Что такое подходящая замена для оператора SQL Like для увеличения производительности?

Я думаю, что понимаю. Вы можете создать реактивную переменную, которая не зависит от пользовательского интерфейса, поскольку входные данные не обновляются при удалении элемента пользовательского интерфейса.

library(shiny)
library(shinydashboard)

ui <- 
  dashboardPage(
    dashboardHeader(
      title = 'Test'),
    dashboardSidebar(),
    dashboardBody(
      selectInput(
        inputId = 'mainInput',
        label = 'Main input',
        selected = 'Show',
        choices = c('Show', 'Hide')
      ),
      uiOutput(
        outputId = 'secondInputUI'
      ),
      actionButton(
        inputId = 'thirdInput',
        label = 'Check value'
      )
    )
  )
server <- function(input, output, session){

  secondInputVar <- reactive({
    if(input$mainInput == 'Show'){
      input$secondInput
    } else {

    }
  })

  observeEvent(input$mainInput, ignoreNULL = TRUE, {
    if (input$mainInput == 'Show')
      output$secondInputUI <- 
        renderUI(
          selectInput(
            inputId = 'secondInput',
            label = 'Second input',
            selected = 0,
            multiple = FALSE,
            choices = c(1, 0)
          )
        )
    else {
      output$secondInputUI <- renderUI({
        NULL
      })
    }
  })

  observeEvent(input$thirdInput, {
    showNotification(
      session = session, 
      ui = paste(secondInputVar(), collapse = ', '))
  })
}

shinyApp(
  ui = ui,
  server = server)
6
задан Nifle 22 June 2009 в 08:27
поделиться

3 ответа

Я голосовал за ответ Mitch Wheat, но существует несколько приемов, которые я также протестировал бы на эффективность.

Мое большое беспокойство о наличии таблицы, полной [символа], [интервал] - Вы, может все еще выполнить большие объемы бессмысленных сравнений строк, особенно если Вы используете %word % на этой новой таблице. (Дублированные но not-matching-our-search записи).

Я, вероятно, выбрал бы экспериментирование с

Words
-----
chars  | word_id 

WordsToEntry
------------
word_id | entry_id 

и посмотрите, является ли база данных наверху достойным смягчением этой возможной проблемы (я не могу протестировать, извините),

4
ответ дан 10 December 2019 в 00:45
поделиться

Как насчет того, чтобы предварительно обработать (однажды) таблица объектов (и каждая новая запись, добавленная к нему, должен был бы быть обработан), для составления наличия таблицы возникновения слова

CREATE TABLE WordItemOccurance
(
    [Word] varchar(50) not null,

    ItemId int not null
        constraint FK_Items references ItemTable(ID)
)

Выполните итерации по всем своим объектам, ворвитесь в отдельные слова и добавьте записи в таблицу происшествия, поскольку они найдены.

Создание кластерного индекса на [Word] и соединение с таблицей Item на ItemId должны быть быстрыми.

5
ответ дан 10 December 2019 в 00:45
поделиться

Вы могли попытаться использовать фильтр цветка.

  1. Википедия
  2. использование фильтров цветка
1
ответ дан 10 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: