Найдено результатов: 134

Двоичные данные в MySQL

Как хранить двоичные данные в MySQL ?

mysql   database   binary-data   data-storage    

615   9   16:03, 1st July, 2020


Вызов ошибки в триггере MySQL

Если у меня есть trigger before the update на таблице, как я могу бросить ошибку, которая предотвращает обновление на этой таблице?

mysql   database   triggers    

1087   6   16:03, 1st July, 2020


Как экспортировать данные из SQL Server 2005 в MySQL

Я бился головой о SQL Server 2005 , пытаясь получить много данных. Мне дали базу данных с почти 300 таблицами в ней, и мне нужно превратить ее в базу данных MySQL. Мой первый вызов состоял в том, чтобы использовать bcp, но, к сожалению, он не производит допустимые CSV - строки не инкапсулируются, поэтому вы не можете иметь дело ни с одной строкой, в которой есть строка с запятой (или что бы вы ни использовали в качестве разделителя), и мне все равно придется вручную написать все инструкции create table, поскольку очевидно, что CSV ничего не говорит вам о типах данных.

Что было бы лучше, если бы существовал какой-то инструмент, который мог бы подключиться как к серверу SQL, так и к серверу MySQL, а затем сделать копию. Вы теряете представления, хранимые процедуры, триггер и т. д., но нетрудно скопировать таблицу, которая использует только базовые типы, из одного DB в другой... так ли это?

Кто-нибудь знает о таком инструменте? Я не возражаю против того, сколько предположений он делает или какие упрощения происходят, пока он поддерживает integer, float, datetime и string. Мне приходится много заниматься обрезкой, нормализацией и т. д. в любом случае, я не забочусь о сохранении ключей, отношений или чего-то подобного, но мне нужен начальный набор данных быстро!

mysql   sql-server   csv   sql-server-2005   bcp    

544   5   16:03, 1st July, 2020


SQL Server 2005 реализация функции MySQL REPLACE INTO?

MySQL имеет эту невероятно полезную, но правильную команду REPLACE INTO SQL.

Можно ли это легко эмулировать в SQL Server 2005?

Запуск новой транзакции, выполнение Select() , а затем либо UPDATE , либо INSERT и COMMIT -это всегда немного больно, особенно когда вы делаете это в приложении и поэтому всегда сохраняете 2 версии инструкции.

Интересно, есть ли простой и универсальный способ реализовать такую функцию в SQL Server 2005?

mysql   sql-server   sql-server-2005    

453   4   16:03, 1st July, 2020


Python и MySQL

Я могу заставить Python работать с Postgresql, но я не могу заставить его работать с MySQL. Основная проблема заключается в том, что на общей учетной записи хостинга у меня нет возможности устанавливать такие вещи, как Django или PySQL, я обычно не могу установить их на свой компьютер, поэтому, возможно, это хорошо, что я не могу установить на хосте.

Я нашел bpgsql действительно хорошим, потому что он не требует установки, это один файл, который я могу посмотреть, прочитать, а затем вызвать функции. Кто-нибудь знает что-то подобное для MySQL?

python   mysql   postgresql   bpgsql    

545   6   16:03, 1st July, 2020


Насколько большой может быть база данных MySQL, прежде чем производительность начнет снижаться

В какой момент база данных MySQL начинает терять производительность?

  • Имеет ли значение физический размер базы данных?
  • Имеет ли значение количество записей?
  • Является ли любое снижение производительности линейным или экспоненциальным?

У меня есть то, что я считаю большой базой данных, с примерно 15М записями, которые занимают почти 2 ГБ. Основываясь на этих цифрах, есть ли у меня стимул Очистить данные, или я могу позволить им продолжать масштабироваться еще несколько лет?

mysql   database   database-performance    

540   14   16:03, 1st July, 2020


Механизмы отслеживания изменений схемы DB

Каковы наилучшие методы отслеживания и / или автоматизации изменений схемы DB? Наша команда использует Subversion для управления версиями, и мы смогли автоматизировать некоторые из наших задач таким образом (перемещение сборок на промежуточный сервер, развертывание тестируемого кода на рабочий сервер), но мы все еще делаем обновления базы данных вручную. Я хотел бы найти или создать решение, которое позволит нам эффективно работать на разных серверах с различными средами, продолжая использовать Subversion в качестве бэкенда, через который код и обновления DB передаются на различные серверы.

Многие популярные программные пакеты включают в себя сценарии автоматического обновления, которые обнаруживают версию DB и применяют необходимые изменения. Является ли это лучшим способом сделать это даже в более крупном масштабе (через несколько проектов, а иногда и через несколько сред и языков)? Если да, то есть ли какой-либо существующий код, который упрощает этот процесс, или лучше всего просто запустить наше собственное решение? Кто-нибудь реализовывал что-то подобное раньше и интегрировал его в Subversion post-commit hooks, или это плохая идея?

Хотя решение, поддерживающее несколько платформ, было бы предпочтительнее, мы определенно должны поддерживать стек Linux/Apache/MySQL/PHP, поскольку большая часть нашей работы находится на этой платформе.

php   mysql   database   svn   migration    

517   20   16:03, 1st July, 2020


Автогенерация Диаграммы Базы Данных MySQL

Я устал открывать Dia и создавать схему базы данных в начале каждого проекта. Есть ли там инструмент, который позволит мне выбрать определенные таблицы, а затем создать схему базы данных для меня на основе базы данных MySQL? Предпочтительно, чтобы это позволило мне отредактировать диаграмму позже, так как ни один из внешних ключей не установлен...

Вот что я представляю себе схематично (пожалуйста, извините за ужасный дизайн данных, я его не проектировал. Давайте сосредоточимся на концепции диаграммы, а не на фактических данных, которые она представляет для этого примера ;) ):

diagram см. полноразмерную диаграмму

mysql   database   database-design   diagram    

671   14   16:03, 1st July, 2020


Автогенерация Диаграммы Базы Данных MySQL

Я устал открывать Dia и создавать схему базы данных в начале каждого проекта. Есть ли там инструмент, который позволит мне выбрать определенные таблицы, а затем создать схему базы данных для меня на основе базы данных MySQL? Предпочтительно, чтобы это позволило мне отредактировать диаграмму позже, так как ни один из внешних ключей не установлен...

Вот что я представляю себе схематично (пожалуйста, извините за ужасный дизайн данных, я его не проектировал. Давайте сосредоточимся на концепции диаграммы, а не на фактических данных, которые она представляет для этого примера ;) ):

diagram см. полноразмерную диаграмму

mysql   database   database-design   diagram    

560   14   16:03, 1st July, 2020


Что мне нужно избежать при отправке запроса?

При выполнении запроса SQL необходимо очистить строки, иначе пользователи могут выполнить вредоносный запрос SQL на вашем веб-сайте.

У меня обычно просто есть функция escape_string(бла), которая:

  • Заменяет escapes ( \) на двойные escapes ( \\).
  • Заменяет одинарные кавычки (') на экранированные одинарные кавычки ( \').

Достаточно ли этого? Есть ли дыра в моем коде? Есть ли библиотека, которая может сделать это быстро и надежно для меня?

Я хотел бы видеть изящные решения в Perl, Java и PHP.

mysql   oracle   security    

543   11   16:03, 1st July, 2020


Как получить имя пользователя и пароль MySQL?

Я потерял свой MySQL логин и пароль. Как мне его вернуть?

mysql    

496   10   16:03, 1st July, 2020


Больше, чем символ, но меньше, чем капля

Char отлично подходят, потому что они имеют фиксированный размер и, таким образом, делают более быструю таблицу. Однако они ограничены 255 символами. Я хочу держать 500 символов, но blob-это переменная длина, и это не то, что я хочу.

Есть ли способ иметь поле фиксированной длины 500 символов в MySQL или мне придется использовать 2 поля char?

mysql   database    

416   3   16:03, 1st July, 2020


Больше, чем символ, но меньше, чем капля

Char отлично подходят, потому что они имеют фиксированный размер и, таким образом, делают более быструю таблицу. Однако они ограничены 255 символами. Я хочу держать 500 символов, но blob-это переменная длина, и это не то, что я хочу.

Есть ли способ иметь поле фиксированной длины 500 символов в MySQL или мне придется использовать 2 поля char?

mysql   database    

375   3   16:03, 1st July, 2020


Есть ли какой-либо нетекстовый интерфейс для MySQL?

У меня есть запрос MySQL, который возвращает результат с одним столбцом целых чисел. Есть ли способ получить MySQL C API, чтобы передать это как фактически целые числа, а не как текст ASCII? Если на то пошло, есть ли способ заставить MySQL делать /any/ из API вещей, кроме ASCII текста. Я думаю, что это сэкономит немного времени в sprintf/sscanf или что-то еще используется, а также в пропускной способности.

mysql   api    

410   1   00:04, 8th August, 2020


Как заставить PHP и MySQL работать на IIS 7.0?

Хорошо, я искал по всему интернету хорошее решение, чтобы заставить PHP и MySQL работать над IIS7.0. Это почти невозможно, я столько раз пробовал это сделать, но все было напрасно. Пожалуйста, помогите, связав некоторые большие учебники step-by-step с добавлением PHP и MySQL на IIS7.0 с нуля. PHP и MySQL необходимы для установки любого CMS.

php   mysql   iis-7    

540   7   04:30, 28th August, 2020


Укажите номер порта в Emacs sql-mysql

Я использовал интерактивный режим Emacs sql для разговора с сервером MySQL db и получил удовольствие от этого. Разработчик установил другую БД на новый номер порта, не являющийся стандартным, но я не знаю, как получить к нему доступ с помощью sql-mysql.

Как указать номер порта при попытке подключения к базе данных?

Было бы еще лучше, если Emacs может запросить у меня номер порта и просто использовать значение по умолчанию, если я не указываю. Есть ли на это шансы?

sql   mysql   emacs    

415   3   10:15, 8th August, 2020


PHP + MYSQLI: привязка переменных параметров / результатов к подготовленным операторам

В проекте, который я собираюсь завершить, я написал и реализовал решение объектно-реляционного сопоставления для PHP. Прежде чем сомневающиеся и мечтатели воскликнут: "как же так?", расслабьтесь - Я не нашел способа сделать работу поздней статической привязки - я просто работаю над этим наилучшим образом,который я могу сделать.

В любом случае, в настоящее время я не использую подготовленные операторы для запросов, потому что я не мог придумать способ передать переменное количество аргументов в методы bind_params() или bind_result() .

Почему мне нужно поддерживать переменное количество аргументов, спросите вы? Потому что суперкласс моих моделей (подумайте о моем решении как о взломанном PHP ActiveRecord wannabe) - это то, где определяется запрос, и поэтому метод find(), например, не знает, сколько параметров ему нужно будет связать.

Теперь я уже думал о создании списка аргументов и передаче строки в eval(), но мне не очень нравится это решение-я бы предпочел просто реализовать свои собственные проверки безопасности и передать операторы.

Есть ли у кого-нибудь предложения (или истории успеха) о том, как это сделать? Если вы можете помочь мне решить эту первую проблему, возможно, мы сможем решить привязку результирующего набора (что-то, что я подозреваю, будет сложнее или, по крайней мере, более ресурсоемким, если он включает в себя первоначальный запрос для определения структуры таблицы).

php   mysql   orm   mysqli    

526   4   02:34, 15th August, 2020


Каков хороший способ денормализации базы данных mysql?

У меня есть большая база данных нормализованных данных заказа, которые становятся очень медленными для запроса отчетов. Многие из запросов, которые я использую в отчетах, объединяют пять или шесть таблиц и должны исследовать десятки или сотни тысяч строк.

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

Есть идеи по поводу подхода? Должен ли я начать с пары моих худших запросов и пойти оттуда?

mysql   database   denormalization    

438   8   00:41, 12th August, 2020


mysqli или PDO - каковы плюсы и минусы?

В нашем случае мы разделены между использованием mysqli и PDO для таких вещей, как подготовленные заявления и поддержка транзакций. Некоторые проекты используют одно, некоторые другое. Существует очень мало реальной вероятности того, что мы когда-нибудь переедем в другой RDBMS.

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

Есть ли еще какие-то плюсы и минусы в выборе одного из них в качестве стандарта, когда мы объединяем наши проекты, чтобы использовать только один подход?

php   mysql   pdo   mysqli   database-abstraction    

882   13   04:14, 25th August, 2020


Как отобразить статистику запросов к базе данных на сайте Wordpress?

Я заметил, что некоторые блоги Wordpress имеют статистику запросов, представленную в их нижнем колонтитуле, которая просто указывает количество запросов и общее время, необходимое для их обработки для конкретной страницы, читая что-то вроде:

23 вопроса. 0.448 секунд

Мне было интересно, как это делается. Может быть, это связано с использованием конкретного плагина Wordpress или, возможно, с использованием какой-то конкретной функции php в коде страницы?

mysql   performance   wordpress   layout   statistics    

503   3   03:43, 28th August, 2020


SQL С Предохранительной Сеткой

В моей фирме есть талантливый и умный оперативный персонал, который очень много работает. Я хотел бы дать им инструмент SQL-execution, который поможет им избежать распространенных, легко обнаруживаемых ошибок SQL, которые легко сделать, когда они спешат. Может ли кто-нибудь предложить такой инструмент? Далее следуют подробности.

Часть компетенции оперативной группы заключается в написании очень сложных специальных запросов SQL. Неудивительно, что операторы иногда делают ошибки в запросах, которые они пишут, потому что они очень заняты.

К счастью, их запросы все SELECTs не изменяют данные SQL, и они все равно работают на копии базы данных. Тем не менее, мы хотели бы предотвратить ошибки в SQL, которые они запускают. Например, иногда ошибки приводят к длительным запросам, которые замедляют работу дублирующей системы, которую они используют, и причиняют неудобства другим, пока мы не найдем преступный запрос и не убьем его. Хуже того, иногда ошибки приводят к явно правильным ответам, которые мы не улавливаем до тех пор, пока много позже, с последующим смущением.

Наши разработчики также делают ошибки в сложном коде, который они пишут, но у них есть Eclipse и различные плагины (такие как FindBugs), которые ловят ошибки при вводе. Я бы хотел дать операторам нечто подобное - в идеале это было бы видно

SELECT U.NAME, C.NAME FROM USER U, COMPANY C WHERE U.NAME = 'ibell';

и перед тем, как вы его исполните, он скажет: "Эй, вы поняли, что это декартово произведение? Вы уверены, что хотите это сделать?"Это не должно быть очень умно - найти явно отсутствующие условия соединения и подобные очевидные ошибки было бы прекрасно.

Похоже, что TOAD должен сделать это, но я не могу найти ничего о такой функции. Существуют ли другие инструменты, такие как TOAD, которые могут обеспечить такое полуинтеллектуальное исправление ошибок?

Обновление: я забыл упомянуть, что мы используем MySQL.

sql   mysql    

465   7   10:05, 10th August, 2020


Java+Tomcat, умирающее соединение с базой данных?

У меня есть установка экземпляра tomcat, но соединение с базой данных, которое я настроил в context.xml , продолжает умирать после периодов бездействия.

Когда я проверяю журналы я получаю следующую ошибку:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Последний пакет успешно полученный с сервера составил 68051 сек тому назад. Последний пакет успешно отправлено на сервер был 68051 секунд назад, что больше, чем настроенное значение сервера 'wait_timeout'. Вы должны рассмотреть возможность истечения срока действия и / или тестирования срок действия соединения перед использованием в вашем приложении, увеличивая сервер настроил значения для таймаутов клиента или с помощью соединителя / J свойство соединения 'autoReconnect=true', чтобы избежать этой проблемы.

Вот конфигурация в context.xml:

<Resource name="dataSourceName" 
        auth="Container" 
        type="javax.sql.DataSource"
        maxActive="100" 
        maxIdle="30" 
        maxWait="10000" 
        username="username" 
        password="********"
        removeAbandoned = "true"
        logAbandoned = "true"
        driverClassName="com.mysql.jdbc.Driver" 
        url="jdbc:mysql://127.0.0.1:3306/databasename?autoReconnect=true&amp;useEncoding=true&amp;characterEncoding=UTF-8"  />

Я использую autoReconnect=true , как говорит ошибка, но соединение продолжает умирать. Я никогда раньше не видел, как это происходит.

Я также проверил, что все подключения к базе данных закрываются должным образом.

java   mysql   database   tomcat    

545   4   14:32, 29th August, 2020


Как выбрать N-ю строку в таблице базы данных SQL?

Мне интересно изучить некоторые (в идеале) агностические способы выбора n-й строки из таблицы базы данных. Было бы также интересно посмотреть, как это может быть достигнуто с помощью собственных функциональных возможностей следующих баз данных:

  • SQL сервер
  • MySQL
  • PostgreSQL
  • SQLite
  • Oracle

В настоящее время я делаю что-то вроде следующего в SQL Server 2005, но мне было бы интересно увидеть другие более агностические подходы:

WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate
FROM Orders)
SELECT *
FROM Ordered
WHERE RowNumber = 1000000

Кредит за вышеизложенное SQL: веб- блог Фироза Ансари

Update: смотрите ответ Troels Arvin относительно стандарта SQL. Троэльс, у тебя есть какие-нибудь ссылки, которые мы можем привести?

mysql   sql   database   oracle   postgresql    

2918   25   03:04, 9th August, 2020


Переход с MySQL на PostgreSQL

В настоящее время мы используем MySQL для продукта, который мы создаем, и стремимся перейти на PostgreSQL как можно скорее, в первую очередь по причинам лицензирования.

Кто-нибудь еще сделал такой шаг? Наша база данных-это жизненная сила приложения и в конечном итоге будет хранить TBs данных, поэтому я очень хочу услышать об опыте работы improvements/losses, основных препятствий в преобразовании SQL и хранимых процедурах и т. д.

Edit: просто чтобы разъяснить тем, кто спрашивал, почему нам не нравится лицензирование MySQL. Мы разрабатываем коммерческий продукт, который (в настоящее время) зависит от MySQL в качестве бэк-энда базы данных. В их лицензии говорится, что мы должны платить им процент от нашей прейскурантной цены за установку, а не фиксированную плату. Как стартап, это менее чем привлекательно.

mysql   database   postgresql   licensing   migration    

499   3   12:20, 22nd August, 2020


Выбрать..... где.... ОПЕРАЦИОННАЯ

Есть ли способ выбрать данные, в которых любое из нескольких условий происходит в одном и том же поле?

Пример: я обычно пишу заявление, например::

select * from TABLE where field = 1 or field = 2 or field = 3

Есть ли способ вместо этого сказать что-то вроде:

select * from TABLE where field = 1 || 2 || 3

Любая помощь будет оценена по достоинству.

mysql    

389   7   11:26, 7th August, 2020


Работа с PHP сервером и MySQL сервером в разных часовых поясах

Для тех из нас, кто использует стандартные пакеты общего хостинга, такие как GoDaddy или сетевые решения, как вы обрабатываете конверсии datetime, когда ваш хостинг-сервер (PHP) и MySQL сервер находятся в разных часовых поясах?

Кроме того, есть ли у кого-нибудь рекомендации по определению часового пояса, в котором находится посетитель вашего сайта, и соответствующим образом манипулирует переменной datetime?

php   mysql   datetime   date   timezone    

467   2   02:50, 7th August, 2020


Быстрый простой способ перенести SQLite3 в MySQL?

Кто-нибудь знает быстрый и простой способ переноса базы данных SQLite3 в MySQL?

mysql   sqlite   migration    

2433   18   11:47, 5th August, 2020


PHP скрипт для заполнения таблиц MySQL

Кто-нибудь знает о script/class (предпочтительно в PHP), который будет анализировать данный MySQL table's structure , а затем заполнять его x number of rows случайными тестовыми данными на основе типов полей?

Я никогда не видел и не слышал о чем-то подобном и подумал, что проверю, прежде чем писать самому.

php   mysql   testing   dataset   test-data    

345   1   21:31, 23rd August, 2020


Выбрать..... где.... ОПЕРАЦИОННАЯ

Есть ли способ выбрать данные, в которых любое из нескольких условий происходит в одном и том же поле?

Пример: я обычно пишу заявление, например::

select * from TABLE where field = 1 or field = 2 or field = 3

Есть ли способ вместо этого сказать что-то вроде:

select * from TABLE where field = 1 || 2 || 3

Любая помощь будет оценена по достоинству.

mysql    

369   7   19:48, 16th August, 2020


MyISAM против InnoDB

Я работаю над проектами, которые включают в себя много записей базы данных, я бы сказал ( 70% вставляет и 30% читает ). Это соотношение также будет включать обновления, которые я считаю одним чтением и одной записью. Чтение может быть грязным (например, мне не нужна 100% точная информация во время чтения).
Задача, о которой идет речь, будет заключаться в выполнении более 1 миллиона транзакций базы данных в час.

Я прочитал кучу материала в интернете о различиях между MyISAM и InnoDB, и MyISAM кажется мне очевидным выбором для конкретной базы данных/таблиц, которые я буду использовать для этой задачи. Из того, что я, кажется, читаю, InnoDB хорошо, если транзакции необходимы, так как поддерживается блокировка уровня строки.

Есть ли у кого-нибудь опыт работы с этим типом нагрузки (или выше)? Разве MyISAM-это правильный путь?

mysql   database   performance   innodb   myisam    

608   25   19:12, 20th August, 2020


Существует ли эквивалент профилировщика для MySql?

"Microsoft SQL Server Profiler - это графический пользовательский интерфейс к SQL Trace для мониторинга экземпляра компонента Database Engine или служб Analysis Services."

Я нахожу использование SQL Server Profiler чрезвычайно полезным во время разработки, тестирования и при отладке проблем приложений баз данных. Кто-нибудь знает, есть ли эквивалентная программа для MySql?

mysql   sql-server   database    

482   9   01:09, 5th August, 2020


Как поддерживать рекурсивный инвариант в базе данных MySQL?

У меня есть дерево, закодированное в базе данных MySQL как ребра:

CREATE TABLE items (
    num INT,
    tot INT,
    PRIMARY KEY (num)
    );
CREATE TABLE tree (
    orig INT,
    term INT
    FOREIGN KEY (orig,term) REFERENCES items (num,num)
    )

Для каждого листа в дереве, items.tot устанавливается кем-то. Для внутренних узлов items.tot должен быть суммой его дочерних элементов. Повторное выполнение следующего запроса приведет к желаемому результату.

UPDATE items SET tot = (
    SELECT SUM(b.tot) FROM
        tree JOIN items AS b
        ON tree.term = b.num 
        WHERE tree.orig=items.num)
    WHERE EXISTS 
        (SELECT * FROM tree WHERE orig=items.num)

(обратите внимание, что это на самом деле не работает, но это к делу не относится)

Предположим, что база данных существует и инвариант уже удовлетворен.

Вопрос в том:

Каков наиболее практичный способ обновления DB при сохранении этого требования? Обновления могут перемещать узлы вокруг или изменять значение tot на конечных узлах. Можно предположить, что листовые узлы останутся листовыми узлами, внутренние узлы останутся внутренними узлами, и все это останется как правильное дерево.

Некоторые мысли у меня были:

  • Полное аннулирование, после любого обновления, пересчитать все (ум... Нет)
  • Установите триггер в таблице элементы для обновления родительского элемента любой обновляемой строки
    • Это было бы рекурсивно (обновления запускают обновления, запускают обновления,...)
    • Не работает, MySQL не может обновить таблицу, которая запустила триггер
  • Установите триггер для планирования обновления родительского элемента любой обновляемой строки
    • Это было бы итеративно (получить элемент из расписания, обработка его планирует больше элементов)
    • Что же это такое? Доверяйте клиентскому коду, чтобы получить его правильно?
    • Преимущество заключается в том, что если обновления упорядочены правильно, то меньше сумм должно быть вычислено. Но этот порядок сам по себе является осложнением.

Идеальное решение было бы обобщить на другие "aggregating invariants"

FWIW я знаю, что это "немного за бортом", но я делаю это для удовольствия (Fun: verb, находя невозможное, делая это. :-)

mysql   algorithm   data-structures   invariants    

448   2   12:03, 15th August, 2020


Если у меня есть строка PHP в формате YYYY-DD-MM и timestamp в MySQL, есть ли хороший способ конвертировать между ними?

Мне интересно провести сравнение между строкой даты и MySQL timestamp. Однако я не вижу легкой конверсии. Неужели я упускаю что-то очевидное?

php   mysql   time   timestamp   date    

410   6   20:11, 27th August, 2020


Автоматизируйте Синхронизацию Oracle Таблиц С MySQL Таблицами

Университет, в котором я работаю, использует Oracle для системы баз данных. В настоящее время у нас есть программы, которые мы запускаем ночью, чтобы загрузить то, что нам нужно, в некоторые локальные таблицы доступа для наших потребностей тестирования. Доступ становится маленьким для этого сейчас, и нам нужно что-то большее. Кроме того, ночные задания требуют постоянного обслуживания, чтобы продолжать работать (из-за проблем с сетью, изменений таблиц, плохого кода:)), и я хотел бы устранить их, чтобы освободить нас для более важных вещей.

Я больше всего знаком с MySQL, поэтому я настраиваю тестовый сервер MySQL. Как лучше всего автоматизировать копирование необходимых таблиц из Oracle в MySQL?

Редактировать: я принял ответ. Мне не нравится ответ, но он кажется правильным на основе дальнейших исследований и отсутствия других ответов. Спасибо всем, кто обдумал мой вопрос и ответил на него.

mysql   database   oracle    

530   4   07:51, 23rd August, 2020


Указание перечисления mySQL в модели Django

Как мне определить и использовать ENUM в модели Django?

python   mysql   django   django-models   enums    

582   8   21:40, 9th August, 2020


Какой хороший способ инкапсулировать доступ к данным с помощью PHP/MySQL?

Большая часть моего опыта находится в стеке MSFT, но сейчас я работаю над сайд-проектом, помогая кому-то с личным сайтом с дешевым хостингом, который построен на стеке LAMP. Мои возможности по установке дополнительных компонентов ограничены, поэтому мне интересно, как написать код доступа к данным без внедрения необработанных запросов в файлы .php.

Я люблю, чтобы все было просто, даже с этим .NET. Обычно я пишу хранимые процедуры для всего, и у меня есть вспомогательный класс, который обертывает все вызовы для выполнения процедур и возврата наборов данных. Я не ищу полномасштабного ORM,но это может быть путь, и другие, кто рассматривает этот вопрос, возможно, ищут его.

Помните, что у меня есть учетная запись $7/month GoDaddy, поэтому я ограничен тем, что уже установлено в их базовом пакете.

Edit: спасибо rix0rr, Алан, Андерс, Дракон, Я проверю все это. Я отредактировал вопрос, чтобы быть более открытым для решений ORM, поскольку они так популярны.

php   mysql   database   lamp    

393   6   03:32, 22nd August, 2020


Что является лучшим способом, чтобы взаимодействовать с сервером MySQL?

Я собираюсь использовать C/C++, и хотел бы знать, как лучше всего поговорить с сервером MySQL. Должен ли я использовать библиотеку, которая поставляется с установкой сервера? Есть ли у них хорошие библиотеки, которые я должен рассматривать, кроме официальной?

c++   sql   mysql   c   database    

428   4   06:42, 1st August, 2020


Наиболее эффективный способ получить данные из базы данных в сеанс

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

$sql = "SELECT * FROM users WHERE username='" . mysql_escape_string($_POST['username']) . "' AND password='" . mysql_escape_string(md5($_POST['password'])) . "'";
$result = mysql_query($sql, $link) or die("There was an error while trying to get your information.\n<!--\n" . mysql_error($link) . "\n-->");
if(mysql_num_rows($result) < 1)
 {
    $_SESSION['username'] = $_POST['username'];
    redirect('index.php?p=signup');
 }
$_SESSION['id'] = mysql_result($result, '0', 'id');
$_SESSION['fName'] = mysql_result($result, '0', 'fName');
$_SESSION['lName'] = mysql_result($result, '0', 'lName');
...

И прежде чем кто-нибудь спросит "да", мне действительно нужно "SELECT

Edit: Да, Я дезинфицирую данные, так что не может быть никакой инъекции SQL, которая находится дальше в коде.

php   mysql   session    

438   10   06:22, 10th August, 2020


Копирование / дублирование базы данных без использования mysqldump

Без локального доступа к серверу существует ли какой-либо способ дублировать/клонировать базу данных MySQL (с содержимым и без содержимого) в другую без использования mysqldump ?

В настоящее время я использую MySQL 4.0.

mysql    

457   9   19:57, 3rd August, 2020


Использование MySQLi-что лучше для закрытия запросов

У меня есть привычка сводить использование переменных к минимуму. Поэтому мне интересно, есть ли какое-либо преимущество, которое можно получить следующим образом:

$query = $mysqli->query('SELECT * FROM `people` ORDER BY `name` ASC LIMIT 0,30');

// Example 1
$query = $query->fetch_assoc();

// Example 2
$query_r = $query->fetch_assoc();
$query->free();

Теперь, если я прав, Пример 1 должен быть более эффективным, поскольку $query - это unset , когда я переназначаю его, что должно освободить любую память, связанную с ним. Однако есть метод (MySQLi_Result::free()), который освобождает ассоциированную память - это одно и то же?

Если я не вызываю ::free() , чтобы освободить память, связанную с результатом, но unset , переназначив переменную, я делаю то же самое? Я не знаю, как регистрировать такие вещи - у кого-нибудь есть идеи?

php   mysql   memory   mysqli    

473   2   07:27, 18th August, 2020


Новый проект: MySQL или SQL 2005 Экспресс

Я начинаю новый клиент / серверный проект на работе, и я хочу начать использовать некоторые из новых технологий, о которых я читал, LINQ и Generics являются основными из них. До сих пор я разрабатывал эти типы приложений с MySQL, поскольку клиенты не хотели платить большие лицензионные расходы за MSSQL.

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

  1. Можно ли еще загрузить MSSQL 2005 express? Кажется, я не могу найти его на сайте microsoft. Я бы не решился использовать MSSQL 2008 в проекте так скоро после его выпуска.

  2. Если экспресс-версия адекватна моим потребностям, я уверен, что множество людей, читающих это, использовали их. У вас возникли какие-то проблемы?

mysql   sql-server    

472   6   19:57, 29th August, 2020


MySQL vs PostgreSQL для веб-приложений

Я работаю над веб-приложением, использующим Python (Django), и хотел бы знать, будет ли MySQL или PostgreSQL более подходящими при развертывании для производства.

В одном из подкастов Джоэл сказал, что у него были некоторые проблемы с MySQL, и данные не были согласованы.

Я хотел бы знать, были ли у кого-то такие проблемы. Кроме того, когда речь заходит о производительности, которую можно легко настроить?

mysql   postgresql    

516   11   08:39, 10th August, 2020


Существует ли задача rake для резервного копирования данных в вашей базе данных?

Существует ли задача rake для резервного копирования данных в вашей базе данных?

У меня уже есть резервная копия моей схемы, но я хочу сделать резервную копию данных. Это небольшая база данных MySQL.

mysql   ruby-on-rails   ruby   database   rake    

414   7   04:54, 9th August, 2020


Поддерживает ли MS-SQL таблицы в памяти?

Недавно я начал изменять некоторые из наших приложений, чтобы поддерживать MS SQL Server в качестве альтернативного бэк-энда.

Одна из проблем совместимости, с которой я столкнулся,-это использование функции MySQL CREATE TEMPORARY TABLE для создания таблиц в памяти, которые содержат данные для очень быстрого доступа во время сеанса без необходимости постоянного хранения.

Что такое эквивалент в MS SQL?

Требование состоит в том, что мне нужно иметь возможность использовать временную таблицу так же, как и любую другую, особенно JOIN с постоянными таблицами.

mysql   sql-server   rdbms   portability    

438   8   13:07, 28th August, 2020


Группа SQL с заказа

У меня есть таблица тегов, и я хочу получить самый высокий счетчик тегов из списка.

Примерные данные выглядят следующим образом

id (1) tag ('night')
id (2) tag ('awesome')
id (3) tag ('night')

с помощью

SELECT COUNT(*), `Tag` from `images-tags`
GROUP BY `Tag`

возвращает мне данные, которые я ищу совершенно. Однако я хотел бы организовать его так, чтобы самые высокие значения тегов были первыми, и ограничить его отправкой мне только первых 20 или около того.

Я попробовал это сделать...

SELECT COUNT(id), `Tag` from `images-tags`
GROUP BY `Tag`
ORDER BY COUNT(id) DESC
LIMIT 20

и я продолжаю получать "Invalid use of group function - ErrNr 1111"

Что я делаю не так?

Я использую MySQL 4.1.25-Debian

mysql   sql   mysql-error-1111    

466   6   17:33, 19th August, 2020


Как выбрать посты с определенными тегами / категориями в WordPress

Это очень конкретный вопрос, касающийся MySQL , как он реализован в WordPress .

Я пытаюсь разработать плагин, который будет показывать (выбирать) сообщения, которые имеют определенные "теги" и принадлежат к определенным "категориям" (оба несколько)

Мне сказали, что это невозможно, потому что так хранятся категории и теги:

  1. wp_posts содержит список должностей, каждая должность имеет "ID"
  2. wp_terms содержит список терминов (как категорий, так и тегов). Каждый термин имеет двигатели СМД -
  3. wp_term_taxonomy имеет список терминов с их TERM_IDs и имеет определение таксономии для каждого из них (либо категория, либо тег)
  4. wp_term_relationships имеет связи между терминами и должностями

Как я могу присоединиться к таблицам, чтобы получить все записи с тегами "Nuclear" и "Deals", которые также относятся к категории "Category1"?

php   mysql   sql   wordpress   plugins    

463   6   13:32, 17th August, 2020


Как обойти неподдерживаемые целочисленные типы полей без знака в MS SQL?

Пытаясь сделать приложение на основе MySQL поддержкой MS SQL, я столкнулся со следующей проблемой:

Я сохраняю auto_increment MySQL как целочисленные поля без знака (разных размеров), чтобы использовать полный диапазон, поскольку я знаю, что никогда не будет отрицательных значений. MS SQL не поддерживает атрибут unsigned для всех целочисленных типов, поэтому мне приходится выбирать между удалением половины диапазона значений или созданием обходного пути.

Одним из очень наивных подходов было бы поместить некоторый код в код абстракции базы данных или в хранимую процедуру, которая преобразует между отрицательными значениями на стороне БД и значениями из большей части диапазона без знака. Это, конечно, испортит сортировку, а также не будет работать с функцией автоматического идентификатора (или это будет каким-то образом?).

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

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

mysql   sql-server   database   interop    

488   3   09:55, 20th August, 2020


Географически распределённый MySQL

Приветствую all.

Есть желание географически распределить проект, и начать с одной из его состовляющих: MySQL. Интересны ответы тех, кто вплотную работал с этой БД и не в теории знает как работают различные схемы географически распределенной балансировки.

Текущая схема примерно следующая: один веб-сервер и два сервера БД в режиме «master-slave». К одному идут запросы только на чтение, к другому преимущественно на запись, оба сервера БД стоят рядом и соединены кроссом. Есть идея сделать схему немного посложнее и ввести в строй еще несколько серверов в другой стране, при этом настроить репликацию БД. Каналы и там и там хорошие, но задержки уже больше чем при соединении серверов «попа-в-попу». Кто реализовывал такие схемы: что можете сказать?

  • Реально или есть какие-то известные проблемы?
  • Может репликационный трафик можно как-то жать, для экономии канала?
  • Стоит использовать встроенный в MySQL ssl или лучше паковать все в OpenVPN?
  • Какие подводные (или даже вполне надводные) камни встретятся, если к этому еще прибавить master-master?
  • Кто чего скажет о кластерных типах БД в MySQL?


Добавлю, что в первую очередь, естественно интересуют практические знания, чем теоретические.



Транзакции, инкрементирование и MySQL UPDATE

Является ли в MySQL операция инкрементирования в UPDATE транзакционно-безопасной? Возможно ли состояние гонки, когда несколько клиентов одновременно выполняют запрос вроде «UPDATE mytable SET myfield=myfield+1 WHERE id=myid»? Если тысяча клиентов одновременно выполнят такой запрос на строке с базовым значением 0, то будет ли в конце значение равно тысяче?

Речь о InnoDB.

MySQL    

289   6   14:45, 7th August, 2020


Как защитить БД с критичными данными от произвола медленных запросов?

Ситуация: есть боевой сервер, на нем — вебсервер и MySQL. С мусклем взаимодействуют, во-первых, PHP-скрипты выполняющиеся под апачем на этом сервере, а во-вторых — удаленные пользователи через TCP. Работают они с одной и той же базой. Однако, работоспособность связки «локальный апач плюс мускль» критична, а «удаленные юзеры плюс мускль» — нет.


«Удаленный» юзер запускает корявый запрос — например, REGEXP селект по неиндексированному столбцу на 20 млн строк. При этом в течение 3-5 минут тормозят все остальные запросы к этой базе, которые при обычных условиях летают. В итоге критичная веб-часть перестает отвечать с приемлемой скоростью. Как сделать так, чтобы удаленные юзеры могли посылать говнозапросы без вреда функционированию локальных подключений к БД? «Локалка» и «удаленщики» коннектятся к БД разными юзерами. Разнести базу на две — вариант не устраивает. Запас производительности на сервере есть (8 ядер, 24 гига памяти).

MySQL   Базы   данных    

420   7   05:03, 11th August, 2020


Инфраструктура под высокие нагрузки

Добрый день, коллеги. Готовимся к запуску одного проекта, к сожалению, по NDA не могу рассказать что за проект, позже, после старта, напишу пост, но появилась проблема.

К моменту старта мы ожидаем высокие нагрузки и нам немного сложно оценить необходимую инфраструктуру под них. В пике мы ожидаем ~5 млн MySQL запросов в минуту (60% Select / 40% Insert). Запросы по себе довольно простые т.е. без сложных выборок и т.д. Подскажите пожалуйста оборудование, которое все это переварит. Нам предложили 2 8-и гиговых кор 2 дуо под веб и 3 8-и гиговых кор 2 дуо под базу данных.

Заранее спасибо

MySQL   Highload    

348   7   17:27, 9th August, 2020


Как выбрать одним запросом 5 последних записей каждой категории в MySQL?

Здравствуйте.

Допустим у нас есть таблица следующей структуры: id, cid, title.

Может есть какой-нибудь элегантный способ выбрать одним запросом 5 последних записей каждой категории(cid)?

MySQL    

300   6   08:04, 5th August, 2020


MySQL и оперирование с рейтингом игроков

Допустим есть табличка с игроками, где у каждого игрока есть поле «score».

И мы хотим создать общий рейтинг игроков с сортировкой по этому полю.

Вопрос в том, можно ли как-то получить позицию заданного игрока в этом рейтинге? Т.е. есть игрок со score=12 и при сортировке по этому полю он будет в списке всех игроков на 50000-м месте.

Можно как-то определить это самое место легким движением руки?

Или вариант тут только один — раз в N времени выполнять проход по отсортированной таблице и запоминать рейтинги?

Объемы данных планируются от 100 тыс. юзеров до миллиона. Каким вообще образом создаются отсортированные рейтинги при таких больших объемах?

MySQL   Рейтинги    

479   7   09:31, 17th August, 2020


Инфраструктура под высокие нагрузки

Добрый день, коллеги. Готовимся к запуску одного проекта, к сожалению, по NDA не могу рассказать что за проект, позже, после старта, напишу пост, но появилась проблема.

К моменту старта мы ожидаем высокие нагрузки и нам немного сложно оценить необходимую инфраструктуру под них. В пике мы ожидаем ~5 млн MySQL запросов в минуту (60% Select / 40% Insert). Запросы по себе довольно простые т.е. без сложных выборок и т.д. Подскажите пожалуйста оборудование, которое все это переварит. Нам предложили 2 8-и гиговых кор 2 дуо под веб и 3 8-и гиговых кор 2 дуо под базу данных.

Заранее спасибо

MySQL   Highload    

360   7   08:45, 3rd August, 2020


Как выбрать одним запросом 5 последних записей каждой категории в MySQL?

Здравствуйте.

Допустим у нас есть таблица следующей структуры: id, cid, title.

Может есть какой-нибудь элегантный способ выбрать одним запросом 5 последних записей каждой категории(cid)?

MySQL    

399   6   02:28, 20th August, 2020


MySQL и оперирование с рейтингом игроков

Допустим есть табличка с игроками, где у каждого игрока есть поле «score».

И мы хотим создать общий рейтинг игроков с сортировкой по этому полю.

Вопрос в том, можно ли как-то получить позицию заданного игрока в этом рейтинге? Т.е. есть игрок со score=12 и при сортировке по этому полю он будет в списке всех игроков на 50000-м месте.

Можно как-то определить это самое место легким движением руки?

Или вариант тут только один — раз в N времени выполнять проход по отсортированной таблице и запоминать рейтинги?

Объемы данных планируются от 100 тыс. юзеров до миллиона. Каким вообще образом создаются отсортированные рейтинги при таких больших объемах?

MySQL   Рейтинги    

301   7   19:22, 11th August, 2020


Посоветуйте программу для моделирования БД MySQL под Ubuntu

Нужна программа для проектирования БД MySQL с графическим отображением связей и автоматической генерацией кода для создания таблиц.
Есть ли такая под Линукс и какая лучшая, удобная для новичка?

Linux   MySQL   Проектирование   баз   данных    

394   8   16:15, 10th August, 2020


Бекапы версий контента при создании статьи как реализовать? (PHP, MySql)?

К примеру в вордпрессе есть такая фишка
20100917-qcqt-19kb.jpg


То есть на каждую статью приходится несколько версий, сохраненных через некоторый интервал с возможностью отката на каждую из них. Подскажите пожалуйста, как это грамотно реализовать средствами PHP и MySQl! Спасибо

PHP   MySQL   CVS    

310   5   21:35, 1st August, 2020


Выборка разом топ рубрик и определенного кол-ва топ-наименований по каждой из рубрик

Уважаемые коллеги!
Вот уже несколько дней думаю над запросом.
Есть таблица с рубриками и таблица с наименованиями. У каждой рубрики и наименования есть поле рейтинга.
Делаю выборку наименований с их рубриками.
Задача в том, чтобы выбрать ТОП 3 наименования из ТОП 3 рубрик. Другими словами хочу чтобы результат примерно был таков:

фильмы | аватар | рейтинг рубрики 10 | рейтинг наименования 100 |
фильмы | крестный отец | рейтинг рубрики 10 | рейтинг наименования 90 |
фильмы | звездные войны | рейтинг рубрики 10 | рейтинг наименования 60 |
сериалы | доктор хаус | рейтинг рубрики 8 | рейтинг наименования 200 |
сериалы | тбв | рейтинг рубрики 8 | рейтинг наименования 40 |
сериалы | интерны | рейтинг рубрики 8 | рейтинг наименования 10 |
мультфильмы | жил был пёс | рейтинг рубрики 5 | рейтинг наименования 90 |
мультфильмы | том и джерри | рейтинг рубрики 5 | рейтинг наименования 80 |
мультфильмы | бурума свергли с престола | рейтинг рубрики 5 | рейтинг наименования 66 |

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

MySQL    

284   4   04:35, 28th August, 2020


Как спасти данные после правки конфига MySQL

Поправил конфиги MySQL на VDS. Сразу же обвалились все базы, MySQL ругался на некорректные данные в frm файлах. Прочитал что это нормально, надо было сразу настраивать как нужно, сейчас только дамп-импорт.
Я бы хотел поинтересоваться у знающих как можно восстановить базы без лишних телодвижений? В ручную дампить 30+ баз и импортировать потом обратно както неохота. Есть советы?

MySQL    

371   4   21:06, 1st October, 2020


Транспонирование таблицы SQL

столкнулся с задачей транспонирования таблицы (поворот на 90 градусов).
есть столбцы
A | B | C
1 | 2 | 3
4 | 5 | 6

вывести
A 1 4
B 2 5
C 3 6

в интернетах пишут
«my very strong advice: don't try to do this with SQL»
и пару достаточно «странных» вариантов

Что посоветуете?

MySQL    

733   7   02:46, 23rd August, 2020


Как автоматически делать бэкапы mysql?

Хочу делать mysql бэкапы некоторых баз данных.
Что-бы автоматически делался бэкап, отправлялся на почтовый ящик и скидывался мне на компьютер.

Как можно реализовать?

У меня vps сервер на фрихе.

MySQL   Резервное   копирование    

312   6   04:02, 29th August, 2020


Как правильно учиться PHP / mySQL?

Я сам учусь программированию на PHP/Mysql, и хочу попросить совета у хабрасообщества.

Вот список литературы что я использую для индивидуальной учёбы:

PHP 5 для чайников (Джанет Валейд)
PHP в подлиннике (Дмитрий Котеров)
PHP полезные приемы ( А.Орлов)
PHP/MySQL для начинающих (Энди Харрис)
MySQL полное руководство. Второе издание (Поль Дюбуа)


Вопрос таков: Я правильные книги выбрал?

Порой читаю книгу и складывается ощущение, что автор писал что бы только продать книгу и получить прибыль.

Разумеется опытный программист понимает все что в книге написано, но где именно так книга в которой чётко объясняют тот или иной сайт, как он устроен, через какие операторы и что работает.

Ведь проще понять на примерах чем читать длинный текст про то как хорошо работает функция на одном примере и все.


Посоветуйте пожалуйста.


Может будет у кого нибудь ссылка на интерактивные видео курсы?

PHP   MySQL   Книги   IT-образование    

365   13   10:08, 9th August, 2020


Как мигрировать базу данных с индексами и внешними ключами с MySQL на HSQLDB?

В базе около 2 миллионов записей, в MySQL все это счастье с индексами занимает около 300 мегабайт.

MySQL   Перенос   данных    

373   1   21:06, 1st October, 2020


Муки выбора PHP-фреймворка для разработки сайта, ориентированного на мобильных пользователей

Привет,

Возникло желание изобрести велосипед сделать некий весьма ёмкий сайт для мобильных устройств (смартфонов и им подобных) — т.е., html-ный. Есть желание реализовать на PHP, в связи с чем возникает вопрос: каким PHP-фреймворком воспользоваться?

Пожеланий крайне немного:

  • Не заумная документация (можно даже на русском :))
  • Наличие легкого MVC
  • Поддержка (реализация?) i18n
  • Легкий интерфейс к БД (mysql): мне все еще кажется, что зачастую запрос можно написать и руками; еще мне кажется, что у ZF с DBA перемудрили
  • (желательно) Отсутствие излишеств :)


Городить с самого начала — очевидно, потеря времени. Разбираться во всем многообразии — с ума сойти можно. Может, порекомендуете?

Спасибо.

PHP   MySQL   Фреймворки    

398   8   07:54, 28th August, 2020


Как понять почему тупит MySQL?

Сервер C2Q x 2 8G ram. RAID 5( 3 hdd ), mysql 5.1.26-rc \ Red Hat 4.1.2-14


Когда собирали(два года назад) были молодыми и глупыми, но сервер вообще влезает в свои параметры.


Итак имеем относительно высокую нагрузку на MySQL — 601.90 запросов в секунду, из них апдейты\инсерты — 2%, а ~70% — stmp prepare\execute\close, на долю чистого селекта остается 34.84%


И где-то неделю назад база научилась умирать — создавались кучи процесов которые работали по полчаса.
Странность 1 — ровно через час все чинилось САМО


В общем начались разгребания состояния сервера.

Как один из пунктов этой программы в код движка был добавлен дамп времени выполнения операций в базу обратно в эту базу.

Этот код работал для запросов которые заняли дольше 0.1 сек — slow_log их еще не видит, но это уже тормоза…


В общем тут и пошли странности — самый обычный запрос, который, запусти его ручками, выполняется 0.0001 репортит в базу что он выполнялся 0.5 или даже ДВЕ секунды…

Странность номер два — тормоза идут мелкими сериями, по 5-10 тормознутых запросов, примерно раз в 11 секунд.

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


Так как 99 тормозных запросов приходились на innoDB таблицы были проведены некоторые танцы — включен file_per_table и таблицы из обшей свалки(11Гб) перевелись в свои маленькие файлики( конечный общий размер 4Гб, фрагментация там была дайбоже )


LA сервера, 0.9

утилизация винта — 15-20%


Конфиг тут

Свободная память — есть.

Идей откуда тормоза и что делать — нет


Как вариант — Percona или MariaDB (5.1.6?)

Бонус пак — когда mysql зависает — конекты от него не отваливаются, процесы не завершаются.

Никак кроме как kill -9....

MySQL    

363   9   20:48, 1st August, 2020


Схема хранения изменяющихся данных с историей

Есть около 300 тыс объектов ( например легковых автомобилей) для каждого автомобиля раз в неделю производится замер параметров ( пробег, давление в шинах, количество топлива), параметров будет в районе 20 штук, нужно все это хранить в базе.

В освновном пользователей интерисуют только последние параметры. Но иногда необходимо отвечать на вопросы типа «А как менялось давление в шинах во времени», «А какие параметры менялись на прошлой неделе»

Интуиция говорит, что наверное надо смотреть в сторону mongo, но тех задание явно говорит, что будем использовать Mysql :)

Пока родилось два варианта

1)

Первая таблица (название data)

id| object_name | param1 | param1_is_changed | param1_change_date | param2…

Вторая таблица (название data_history)

id| object_name | param1 | param1_is_changed | param1_change_date | param2… | version | change_date

При каждом изменении любого параметра, предыдущая версия записывается в data_history, у того параметра который изменился ставится влажок is_changed

2) Первая таблица (название data)

id| object_name

Вторая таблица ( хранит только последние значения)

id | object_id | param_name | param_value | date

Третья таблица ( хранит историю значений из второй таблицы)


Сейчас мы отслеживаем около 50 тыс объектов, в неделю происходит около 200 изменений в параметрах. Все параметры числовые, поэтому вопрос избыточности хранения в первом случае волнует только в плане производительности БД, но никак не места на диске. Второй метод вроде хорош, но его не очень просто реализовать используя ORM.

Ваше мнение? как спроектировать DB? как найти компромисс между эффективной БД и удобством написания приложения к ней.

PHP   MySQL   Базы   данных    

414   7   21:54, 23rd August, 2020


Sphinx или Яндекс.Сервер?

Собственно сабж. Текста много(4000 тысячи статей, 8 тысяч названий).

Крутится всё с использованием СУБД mysql на linux 2.6.


Интересует, как у обоих продуктов дела с потреблением памяти и качеством выдачи.

MySQL   Sphinx    

408   4   10:39, 21st August, 2020


Какова судьба стартапа, организованного вместе с близкими людьми?

Здравствуйте!

Давно мучает вопрос:
«Какова судьба стартапа, организованного вместе с близкими людьми?»

Например: с другом или своей девушкой?

Может быть у кого-то был реальный опыт и может поделиться советами.

P.S. Вопрос был расширен деталями из реальной жизни и создан отдельный топик.

Спасибо!

MySQL   +1   ещё    

449   17   09:52, 11th August, 2020


Mysql update множественное обновление одним запросом

Здравствуйте, заранее извинюсь если кому то этот вопрос покажется детским.

Требуется обновить 5 записей в одной таблице в разных строках.
Тоесть SET filed=1 where id=1, SET filed=2 where id=12, SET filed='0.5' where id=3…

Описал как мог. Буду очень признателен если натолкнете на путь истинный

MySQL    

364   2   14:45, 7th August, 2020


Удаление mysql-binlog'ов?

Можно ли удалить binlog'и без опаски за репликацию БД? Что в этом случае делать с mysql-bin.index?

Заранее спасибо за ответы.

MySQL    

408   3   09:16, 14th August, 2020


Блокировка при транзакции в mysql, как она работает?

У меня есть таблица images с 3-я колонками: id, product_id и cover. В ней, допустим, очень много записей, которые постоянно читаются. Т.е. не хотелось бы чтобы таблица блокировалась.


В таблице есть 100 записей (с product_id=777), у одной из которых cover=1, а у остальных 99-ти cover=0. Тут внезапно я захотел установить признак cover к другой картинке, и обнулить у текущей, и написал запросы:

BEGIN;<br/>
<br/>
# Сначала сбрасываю обложку у товара №777<br/>
UPDATE images SET cover=0 WHERE product_id=777 AND cover=1 LIMIT 1;<br/>
<br/>
# Устанавливаю новую обложку для товара (AND product_id=777 тут для наглядности)<br/>
UPDATE images SET cover=1 WHERE id=5000 AND product_id=777 LIMIT 1;<br/>
<br/>
COMMIT;



Так вот, означает ли, что при такой транзакции заблокируются только все записи товара с product_id=777, а не вся таблица целиком?

MySQL    

319   1   12:35, 28th August, 2020


Отсеивание дублей строк с Mysql?

Здравствуйте,

Встала задача раздублить около 60гб строковых данных. Уникальных среди них около 25-30%

Решили использовать mysql с уникальным индексом для этого.


Вопросы:
1. Уникальным лучше делать поле с самой строкой (1-5 слов) или же оптимальней считать сначала crc32 от этой строки, и уже на хеш вешать уникальный индекс?

2. Можно ли применить некое курстарное подобие партиционирования, но не на уровне таблиц, а на уровне БД?

Например, делить данные по первой букве строки (получим 28 физических баз), и одновременно заполнять только одну из них, тем самым уменьшая потребление RAM?

MySQL    

322   4   04:37, 4th August, 2020


Как выбрать случайную запись из базы MySQL без использования первичного ключа и order by rand()

Возникла такая проблема, есть база данных в которой содержатся пользователи (юзеры установившие приложение вконтакте, если быть точным), в качестве Primary key используестся id пользователя в социальной сети, который можно считать случайным числом. Нужно выбрать из базы одного случайного пользователя. Пользователей в базе много поэтому order by rand() использовать слишком накладно, генерировать случайное число и выбирать запись с таким id тоже не получится, учитывая что id идут не по порядку. Как быть в такой ситуации? И заодно, как быть если нужно несколько случайных пользователей?

MySQL    

420   6   02:59, 28th August, 2020


Поиск MySQL, как?

Здравствуйте.

Есть таблица вида:

ID | COUNT | DATA | DATE | TYPE | IP


Каждый день в базу добавляется около 500 тысяч записей.

Как можно сделать поиск по полю DATA быстрым и сколько времени будет занимать поиск по такой огромной базе через неделю, месяц?

MySQL   Facebook    

438   5   08:02, 3rd August, 2020


Стоит ли использовать Mongo?

Приветствую!

В последнее время все чаще слышу упоминания про NoSQL и MongoDB в частности. Тема меня заинтересовала, но вот пока не могу найти интересующей меня информации, поэтому спрошу здесь — наверняка уже многие успели поэкспериментировать, а может и разработать серьезные высоконагруженные приложения в связке с MongoDB.
Заранее предупрежу, если где-то я ошибся в отношении MongoDB — я не специально. Просто я с ней еще даже не пытался работать, а лишь почитывал статьи на Хабре, да те примеры, что лежат на оф.сайте.

Сейчас я занимаюсь разработкой тизерной сети. Задача, на первый взгляд кажущаяся тривиальной, на деле выходит довольно хитровыделанной в плане организации структуры БД. Огромное кол-во связей, множество таблиц-посредников для связей М-М и т.д… Чем меня привлекла идея MongoDB, так это своим принципом построения связей. Вопрос №1:
действительно ли работа с МонгоБД при наличии кучи связей менее затратна в плане ресурсов? Ну, хотя бы на простейшем примере (буду писать на «псевдо SQL») — выборка из 2 таблиц, связанных отношением М-М через промежуточную таблицу:
table sites(
id int primary key auto_increment,
url varchar
)

table categories(
id int primary key auto_increment,
name varchar
)

table sites_categories(
site_id int,
category_id int
)

Задача вывести список сайтов и категорий, в которых он есть:

SELECT * FROM sites

while(SITE = mysql_result...)
{
//отображаем данные сайта
SELECT * FROM categories WHERE id IN (SELECT category_id FROM sites_categories WHERE site_id = SITE)
//в цикле отображаем категории
}

Также меня интересует, можно ли работать одновременно с MySQL и MongoDB? Вернее, насколько это будет правильно? Полностью переносить БД на Монго не хочется, лишь отдельные, особо-хитрые участки, нагрузка на которых выше, чем хочется.

Также читал, что в MongoDB можно беспроблемно хранить файлы — действительно ли это так и что же будет лучше — хранить по-старинке в специальной папке с подкаталогами по именам/ид пользователей, или использовать MongoDB? (допустим, при таком раскладе: пользователей около 1к, у каждого 40-50 небольших картинок. картинки отдаются в кол-ве примерно 100-150 в минуту.

P.S.: прошу прощения за возможные неточности в вопросах, излишнюю или недосказанную информацию о нуждах и текущем положении дел, разработка структур БД — не мое основное достоинство…

MySQL   NoSQL   MongoDB    

466   6   15:25, 18th August, 2020


Как удачнее спроектировать базу данных?

делаю небольшой сайтик для нескольких групп в универе. страничка с расписанием, файловый архив, и прочие радости. возник вопрос касательно каждодневного расписания. на страничке каждой группы будет висеть её расписание на завтра (по желанию — на любой день). на данный момент, существует две таблицы, но они пока никак не связаны друг с другом:

subjects (список предметов)
subjId (уникальный номер предмета)
subjName (полное название предмета)

groups (список групп)
groupId (уникальный номер предмета)
subjName (название группы)

необходимо сопоставить каждой отдельно взятой группе список предметов на понедельник\вторник\etc…
знание php и mysql — на начальном уровне. посему, хотел поинтересоваться у гуру, как удачнее спроектировать БД.

MySQL   Проектирование   баз   данных    

349   6   05:21, 5th August, 2020


Как работать с постоянно изменяющейся базой в системе контроля версий?

Используем subversion, MySQL, NetBeans.


Хотелось бы чтобы окромя кода база тоже находилась бы в svn. База проекта обновляется достаточно часто. Как с наименьшими трудозатратами обновлять, фиксировать и т.п. таблицы, процедуры, вьюшки и т.п.?

MySQL   Subversion    

407   6   18:15, 29th August, 2020


Как сортировать внутри GROUP BY?

Сортировка внутри GROUP BY


CREATE TABLE `oper` (

`id_num` int(10) unsigned NOT NULL auto_increment,

`id_country` int(10) unsigned NOT NULL,

`cost` decimal(4,2) unsigned NOT NULL default '0.00',

PRIMARY KEY (`id_num`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

id_num id_country cost

1 1 1

2 1 2

3 1 3

4 1 4

5 2 5

6 2 6

7 2 7

8 2 8


надо выбрать самые дорогие номера по странам и их ид

select id_num, id_country, max(cost) from oper group by id_country

выдает вот такую штуку

id_num id_country max(cost)

1 1 4

5 2 8


тоесть цены выбирает верные, но ид номера никак не соответствует ценнику, должно быть так

id_num id_country max(cost)

4 1 4

8 2 8

MySQL    

319   7   15:33, 12th August, 2020


VoIP Ubuntu автодозвон

Хочу реализовать «сервис» будильника — чтобы в назначенное время ubuntu звонила через voip на мобильные телефон.

Есть какие-нибудь идеи?

MySQL   +2   ещё    

407   2   21:06, 1st October, 2020


MYSQL. Удалить дубли строк?

Есть таблика с 100.000 строк.

Нужно удалить дубли строк(именно строк а не ячеек)

то есть чтобы от таблицы:

c1 c2

1 2

1 0

4 2

1 0

1 1

2 1


Осталось:

c1 c2

1 2

1 0

4 2

1 1

2 1


Одну строчку (1 0) нужно удалить так как из было 2.

Можно ли это сделать запросом или без php не обойтись?

Спасибо.

MySQL    

312   9   00:38, 25th August, 2020


Требуется помощь по составлению запроса Mysql

Есть таблица со статистикой в ней 3 поля (id, time, user_id)

Помогите собрать один запрос, чтобы выбирать COUNT(id) WHERE time (разбит по часам) за последние 7 дней с группировкой по user_id. Просто у меня получается жуткая портянка с кучей вложенных запросов, может есть более грамотное решение

MySQL    

341   1   02:17, 27th August, 2020


Как синхронизировать версию базы данных MySQL и кода веб-приложения при разработке?

Исходные данные:
1) веб-приложение на php (ну да это не важно на каком языке), лежащее в git (ну или другой CVS)
2) база данных MySQL
3) Весь SQL-код хранится в БД в виде хранимых процедур.

Как поддерживать синхронизацию кода приложения и структуру БД и хранимые процедуры?
С процедурами дело конечно обстоит проще — можно каждую процедуру положить в отдельный файл, который отслеживается в git (ну или другой CVS)
А вот как быть со структурой таблиц? Генерить ручками при каждом изменении ALTER TABLE и класть их в отдельные файлы — трудоемко.
Может есть какие-то утилиты, которые позволяют делать это автоматически, а-ля Oracle Database Version Control?
Хочется иметь возможность при обновлении версии приложения — выполнить один sql-скрипт, который обновит базу данных. Если конечно такое возможно.

MySQL   Git   CVS   Subversion    

350   5   01:11, 5th August, 2020


Полный SQL-дамп для IBM DB2?

По работе пришлось столкнуться с творчеством ibm, а именно — db2 9.7…

Вопрос следующего характера: как сделать полный дамп базы в db2, включая структуру, данные, процедуры и прочую логику? как свалить это все в файл, аналогичный по структуре дампу MySQL? db2look сохраняет только структуру, насколько я понял.

И, возможно, кому-то уже приходилось конвертировать базы между mysql и db2, какой продукт стоит для этого использовать и насколько это работоспособно?

MySQL   SQL   Резервное   копирование   IBM   Db2    

405   1   12:10, 22nd August, 2020


MySQL+ выполнение внешних команд при определенных событиях, возможно?

Если вкратце есть комерческий пхп-скрипт в код которого вмешатся нельзя(zend), но нужно добавить небольшой функционал. Вот возникла идея написать скрипт( на питоне например) добавляющий нужный функционал и запускать его когда основной скрипт вносит данные в БД. Потому и возник вопрос возможно ли в mysql повесить выполнение команды на insert/update в определенную таблицу, в идеале с передачей некоторых значений из добавленных данных в качестве параметров скрипту?

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

Ну и доп вопрос — сколько примерно такая доработка может стоить?

MySQL    

301   3   19:44, 1st August, 2020


Поменять местами 2 строки в таблице mysql

Всем привет!

Есть таблица, например, с полями Id (int auto_increment) Name

Как с помощью sql запроса поменять местами Id у двух строк?

ЗЫ Хороших выходных :)

PHP   MySQL    

789   10   18:55, 12th August, 2020


Выбрать значения которых нет в таблице

Здравствуйте.

В таблице значения колонки item_id состоят из номеров 1, 2, 3, 4. У меня есть список из чисел 2, 3, 5. Нужен такой запрос который вернёт только 5, то есть значения которого нет в таблице но есть в запросе.

Не пойму как это сделать такой запрос?
Понятно когда данные в двух таблицах, но когда список в запросе запрос становится не очевидно.

MySQL    

373   6   11:00, 27th August, 2020


Запрос на обновление с условием?

Добрый день!


Люди добрые подскажите как в mysql возможно запрос на обновление с условием написать?

Например, если в поле 1 то заменяем его на 2, если 2 то заменяем на его 1.


В поле находится буква «b» и «пусто», мне надо так скажем поменять местами, т.е. букву b заменить на «пусто», а «пусто» заменить на «b».

MySQL   Базы   данных    

344   4   09:53, 2nd August, 2020


Sphinx и связанные таблицы

СУБД MySQL.
Есть 2 таблички: компании (company) и адреса (adress).
Связаны между собой отношением один ко многим. — т.е. у одной компании может быть несколько адресов.

У каждого адреса есть координаты: x, y (хранятся как float).

Хочу найти компании, адреса, которых находятся в некой прямоугольной области (то есть необходимо, чтобы x и y находились в заданном диапазоне).

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

Вот чего точно не получится:
— sql_attr_multi не поможет — он умеет работать только с типами uint, timestamp
— sql_joined_field работает только с текстом.

Остается только отсекать у x,y 3-4 знака и переводить их в integer, а затем использовать sql_attr_multi — но этого очень не хочется делать.

Однако, может есть какой-нибудь альтернативный путь? Со sphinx знаком всего 1 день, поэтому всех его возможностей не знаю.

MySQL   SQL   Sphinx    

268   1   08:54, 9th August, 2020


PHP, MySQL. антиповтор

Суть такая:
Есть база в которую заносится например имя автора (пользователем).
Пользователь может ввести: Пушкин, Пушкин Александр, Александр Сергеевич Пушкин, Пушкин А С, А С Пушкин (ну вы поняли. Как с этим грамотнее бороться? Чтоб не было как в VK и подобных.

PHP   MySQL    

403   5   02:40, 26th August, 2020


Способ хранения файлов: MySQL, NoSql или что-нибудь еще?

Здравствуйте.

Продумываю систему и встали следующие задачи. Необходимо:
1. Хранить около миллиона html фалов
2. Столько же текстовых файлов
3. zip, pdf файлы
4. Необходим поиск по текстовым и html файлам

Если это имеет значение, то имею некоторый опыт по использованию связки mysql+sphinx.
Масштабируемость нужна примерно до 10 миллионов html и столько же текстовых файлов.

Какие решения можете посоветовать?
1. Где и как лучше хранить html и txt файлы?
2. Где и как лучше хранить архивы и pdf?
3. Как хранят данные, к примеру, поисковые системы? Где почитать?

MySQL   NoSQL    

337   1   15:20, 1st August, 2020


MySQL vs PostgreSQL?

Кратко о проекте:
— выборка по большому количеству условий
— много инсертов
— высокие нагрузки
— без права на ошибку

MySQL или PostgreSQL?
Комплексное решение?
Другие варианты?
NoSQL?

MySQL   PostgreSQL    

329   15   21:06, 1st October, 2020


Проблемы с WordPress MU

Всем добрый вечер!

Недавно пробовал запустить на сервере WordPress MU, т.е. мультисайтовый вариант этой CMS. Первый день полет шел нормально, но потом начались проблемы. Сервер выпадал в глубокие задумчивости когда я обращался к чему-либо. Судя по всему мультисайтинг создавал кучу запросов к БД и накапливая их пытался повесить сервак.
Кто-то сталкивался? Может решал как-то? Заранее спасибо.

MySQL   +1   ещё    

390   1   05:51, 26th August, 2020


apache2, mysql и автозапуск(Ubuntu 10.04)

Ubuntu 10.04
LAMP ставил еще на ubuntu 9.10, но когда обновился до 10.04 апач, мускул исчезли из автозапуска. Некоторое время я не обращал внимания и запускал их командой:
sudo /etc/init.d/apache2 start
ну mysql соответственно.
Решил сегодня все-таки поиграться с ними и как-то вернуть автозапуск, гуглил но так ничего и не вышло, про upstart вообще не понятно
Потом решил удалить полностью LAMP и вместе с ними удалил эти скрипты apache2 и mysql в /etc/init.d, непонятно зачем я это сделал… Поставил заново по этой хавту forum.ubuntu.ru/index.php?topic=25668.0 LAMP, но опять в автозапуск у меня ничего не прописалось, и без тех скриптов которые были в /etc/init.d я теперь даже запустить апач не могу( Что делать? Как вернуть эти скрипты и прописать апач с мускулом в автозапуск. Надеюсь вы мне не будете советовать все это дело воткнуть в «Запускаемые приложения» :)

MySQL   Apache    

344   3   21:08, 14th August, 2020


Будет ли биться MyISAM при синхронизации?

Сейчас синхронизирую базы с удаленные серваком останавливая мускул и запуская rsync. Но базы растут и с ними растет и время простоя.
Вопрос в том насколько велика вероятность получить битые таблицы если не останавливать мускул на период синхронизации? А если сначала сделать LOCK TABLES? А потом еще прогонять проверку. Из активности в база на 99% SELECT-ы.

PS. Я прекрасно знаю про дампы и про репликацию и активно их использую, но в данном случае это неоправданно сложно.

MySQL   rsync    

249   4   08:52, 2nd August, 2020


Утилита для бекапов под linux

Разыскивается утилита для выполнения бекапов сайтов на локальную машину под linux.
Требования:
  • Работа по ssh на опциоанльном порту
  • Наличие шедулера
  • Желательно наличие гуи

Сейчас работаю с одним серврером, в будущем желательно иметь возможность работы с несколькими.
Нигде не нашел хороших описаний программ, только их перечни без сравнений. Пробовать все подряд долго. В принципе подойдет и консольная утилита, если есть хорошее руководство к действию.



MySQL — Синхронизация нескольких потоков

Имеется задача: вставить N элементов в таблицу, но перед этим удостовериться, не добавлены ли уже такие элементы.

Т.е. сначала делаем что-то вроде:

SELECT COUNT(*) FROM xxx WHERE x IN (x1,x2,x3,x4,x5,x6…… x1000);

Если результат равен 0, то значит можно делать такой же массовый INSERT.

Но есть проблема — как сделать это секурно при многопоточности?

Т.е., допустим, как избежать ситуации, когда одновременно получаются 2 потока и порядок действий получается таким:

П1: SELECT COUNT(*) — получает «0»
П2: SELECT COUNT(*) — получает «0»
П1: делает INSERT
П2: т.к. получил «ноль» в предыдущем селекте, тоже делает INSERT дублирующих записей

Есть ли решение для такой задачи?

Идея выставлять какой-то глобальный флаг кажется очень кривой и глупой.

Хранимки не предлагайте, т.к. опять-таки — они не спасут от одновременности. Как вообще такие вещи делаются?

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

MySQL   Многопоточность    

360   6   06:37, 26th August, 2020


Можно ли получить номер определенной строки при сортировке в MySQL

Пример: у меня есть N пользователей с экспой от 0 до M.
Пользователи отсортированы по убыванию, от M до 0. Можно ли получить номер пользователя с id в этом списке?
Сейчас использую для этого REDIS.ZSET, но было бы интересно узнать решение на MySQL.

MySQL   Redis    

329   4   15:10, 7th August, 2020


Проблемы с MySQL MyISAM — дублирование записей и крэш больших таблиц

Совершенно внезапно на рабочем проекте стали твориться непонятные вещи:
  • отваливаются две самые большие таблицы — одна на гигабайт и порядка 70 миллионов записей, другая на 500 мегабайт и 700 000 записей. Примерно 100-1000 инсертов в секунду в первую и 2-5 во вторую. Из второй данные активно select'ятся
  • периодически по неизвестным причинам база начинает выдавать ошибку too many connections. Скрипты оптимизированы, один скрипт — один экземпляр соединения (класс БД — «одиночка»)
  • сегодня ни с того ни с сего данные начали дублироваться, один запрос проходил от двух до 13 раз. Причем не один какой-то запрос, а сразу несколько, которые идут друг за другом.
Скрипты проверил, всё в порядке, давно ничего не менялась, проект со средней посещаемостью. Никаких всплесков за сегодня нет.
Сервер выделенный, настройки стандартные, ОС — CentOS. Версия MySQL — 5.0.77

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

PHP   MySQL   SQL   Базы   данных    

299   5   03:07, 13th August, 2020


Схема таблиц, как организовать рейтинг с плюсами/минусами?

Необходимо сделать рейтинг постов/комментов, как на Хабре.

Имею в виду плюсы и минусы и то, что нельзя головать больше одного раза.


Как организовать схему таблиц в MySQL? Сейчас рейтинг хранится в поле rating у самой записи, но так посетитель может голосовать больше одного раза.

MySQL    

276   2   13:25, 5th August, 2020


Postfix и отображаемое имя пользователя

Здравствуйте дамы и господа.

Имеется почтовик на базе postfix+dovecot, с прикрученным mysql и вот какой момент меня несколько расстраивает — отображаемое имя пользователя при отправке сообщения.

При использовании почтового клиента всё просто — отображаемое имя задаётся при создании учётки и всё хорошо, а если этому же пользователю нужно вдруг отправить письмо через web-интерфейс — нужно его отдельно указать в настройках web-интерфейса, что не удобно и как то не правильно, ведь учётки почти создаются при помощи postfixadmin и там же при создании задаётся имя пользователя. Вопрос: можно ли как то использовать по-умолчанию имя пользователя, присвоенное при создании в postfixadmin? ну или хотя бы использовать его если не указано никакого имени, ведь все эти данные доступны из БД.

MySQL   Postfix   Postfix   Admin    

408   1   18:15, 16th August, 2020


составить SQL запрос

База данных mysql.

таблица, с такими данными (упрощено):

id____ project_id_____year
1________1____________2010
2________1____________2008
3________1____________2009
4________2____________2007
5________2____________2009


Хотелось бы получить вот такой результат:
(данные сгруппированы по project_id и взята строка где year — минимальный)

id________project_id_____year
2____________1___________2008
4____________2___________2007

MySQL   SQL    

295   3   18:19, 5th August, 2020


Модуль прозрачного кеширования mysql запросов в memcached

Существует ли сабж, как модуль perl?
Хотелось бы делать запросы, не думая, что есть фронтенд в виде memcached, и бэкенд в виде mysql.

Perl   MySQL   Memcached    

297   3   13:41, 19th August, 2020


Как временно отключить триггеры в mysql 5.0?

Нагуглил вариации на тему

SET @DISABLE_TRIGER = 1;<br/>
SET @DISABLE_TRIGERS = 1;<br/>
SET @DISABLE_TRIGGER = 1;<br/>
SET @DISABLE_TRIGGERS = 1;



Однако они не работают.


Подскажите — есть ли решение у этой задачи?

MySQL    

406   1   12:19, 29th August, 2020


Работа с MyISAM таблицей с кол-вом записей от 10'000'000?

Есть таблица, где хранятся записи о товарах, всего товарах около 10'000'000 — количество может вырасти до 20'000'000.

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


Запрос на создание таблицы:
CREATE TABLE `suppliers_store` (<br/>
 `id_suppliers_store` int(11) NOT NULL AUTO_INCREMENT,<br/>
 `id_suppliers` int(11) NOT NULL,<br/>
 `dt` date NOT NULL,<br/>
 `name` varchar(255) NOT NULL,<br/>
 `code` varchar(255) NOT NULL,<br/>
 `price` double NOT NULL,<br/>
 `code_suppliers` varchar(255) NOT NULL,<br/>
 `count` int(11) NOT NULL DEFAULT '0',<br/>
 `producer` varchar(255) NOT NULL,<br/>
 `weight` varchar(255) NOT NULL,<br/>
 PRIMARY KEY (`id_suppliers_store`),<br/>
 KEY `NewIndex1` (`id_suppliers`),<br/>
 KEY `NewIndex2` (`dt`)<br/>
) ENGINE=MyISAM DEFAULT CHARSET=utf8



Вот примерный запрос, с условиями, которые может сгенерировать фильтр:
select ss.*, s.delivery<br/>
from suppliers_store as ss<br/>
join suppliers as s on ss.id_suppliers = s.id_suppliers<br/>
where (ss.dt &gt;= '2010-02-01 00:00:00' and ss.dt &lt;= '2011-02-01 23:59:59') and <br/>
 (ss.name like '%панель%' or ss.code like '%панель%') and<br/>
 (ss.price &gt; 1000) and<br/>
 (ss.count &gt; 0)<br/>
LIMIT 50



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


Раньше опыта работы с такими объемами не было, насколько mysql подходит для этих целей?

Как можно увеличить скорость поиска по табличке?

MySQL    

292   6   05:25, 24th August, 2020


mysql_real_escape_string vs mysql_escape_string

Согласно документации, стоит использовать только функцию mysql_real_escape_string.
Насколько я понимаю, это связано в основном с применением юникода и действительно оправдано.

Вопрос: насколько часто ошибается mysql_escape_string и можно ли в языках с нативной поддержкой юникода пользовать своей реализацией вроде:
/**
 * Escape string for mysql. Don't use native function,
 * because it doesn't work without connect.
 */
exports.escapeStr = function(str) {
    return str.replace(/[\\"']/g, "\\$&").replace(/[\n]/g, "\\n")
                .replace(/[\r]/g, "\\r").replace(/\x00/g, "\\0");
};


UPD: Вышеприведённый код не полный, в нём присутствуют не все символы, которые нужно экранировать. Давайте будем исходить из того, что replace для \b, \t, \Z, _, % также присутствуют:
exports.escapeStr = function(str) {
    return str.replace(/[\\"']/g, "\\$&").replace(/\n/g, "\\n")
                .replace(/\r/g, "\\r").replace(/\x00/g, "\\0")
                .replace(/\b/g, "\\b").replace(/\t/g, "\\t")
                .replace(/\x32/g, "\\Z") // \Z == ASCII 26
                .replace(/_/g, "\\_").replace(/%/g, "\\%");
};

MySQL   JavaScript   Node.js    

343   5   09:32, 20th August, 2020


Как лучше всего организавать хранение "нравица"-"не нравица" для статей или постов в базе данных?

Например, голосовать может за один пост один ip адрес, база — мускул, таблицы innoDB.


Нужно организовать хранение голосов в базе с наименьшими затратами ресурсов и с максимальной скоростью подсчета рейтинга для статьи.


Я думаю структура таблицы следующая:


article_id (int 11)

ip (varchar 15)

mark (enum ("-1",«1»))


PrimaryKey по двум первым полям. Скорее всего, можно сделать проще, поделитесь опытом, пожалуйста.

MySQL   Инструменты   проведения   опросов    

326   3   07:20, 7th August, 2020


Статьи (мануалы) по распределение нагрузки

Ребят. Помогите пожалуйста найти хорошие статьи по настройке распределения нагрузки web-серверов(apache, mysql, postgresql, nginx) для linux. Тоесть есть некоторое количество серверов и планируется запустить на них lamp и распределять нагрузку между ними

Linux   MySQL   PostgreSQL   Nginx   Apache    

313   4   16:36, 9th August, 2020


MySQL + Mac, не хочет запускаться сервер?

Леопард 10.6.6, качал мускуль сервер от сюда. Поставил, лезу в системные настройки, пытаюсь стартануть — не получается. Только спрашивает пароль и ничего не происходит. Перезгружал.

Железка — mbp 374.
ad7e392203ab21cbfc41957c78d702e7.png

Что посоветуете?

MySQL   macOS    

356   6   23:29, 26th August, 2020


Вопрос про collations в MySQL?

Имеем таблицу следующей структуры:

mysql_collations_question_table_structur



В ней содержатся такие данные:

mysql_collations_question_table_data.png



Делаем экспериментальный запрос:

SELECT<br/>
LOWER(`md5_upper_bin`),<br/>
LOWER(`md5_upper_ge_ci`),<br/>
UPPER(`md5_lower_bin`),<br/>
UPPER(`md5_lower_ge_ci`) <br/>
FROM `qwew`




Получаем результат:

mysql_collations_question_experimental_q


Вопрос: почему постфикс _bin у этих полей игнорируется в данном случае? Руководствуясь маном по MySQL, можно ведь сказать, что _bin влияет также на функции преобразования регистра строковых данных, поэтому наличие _bin в названии сравнения должно нивелировать действие функций LOWER и UPPER. Чего на практике же не происходит.

MySQL   SQL    

275   2   08:55, 24th August, 2020


Поле типа BIT

Постараюсь быть конкретным и понятным.
В mysql поле типа bit(2) используется как флаг, т.е. например первый бит — получатель удалил сообщение, второй бит отправитель удалил сообщение, эдакая двойная булевая, вопрос, как изменять отдельно каждый бит, не извлекая предыдущего?
Где-то читал про это, но найти не могу.
Копать в сторону смещений?

MySQL    

354   3   13:25, 1st August, 2020


Альтернативы DbSimple

Уже год, как пользуюсь в своих проектах DbSimple, но для высоконагруженных проектов хотелось бы что нибудь побыстрее. Что посоветуете?

PHP   MySQL    

383   7   01:05, 7th August, 2020


Учёт количество запросов в БД

Существуют ли такие приложения которые могут точно показать сколько запросов в день было на конкретную БД? (пример MySQL)?

Спасибо

MySQL    

339   3   21:11, 2nd August, 2020


Блокировка страниц при совместном редактировании

Доброго времени суток.

Есть такая структура базы данных

image

Краткое описание:

users — таблица пользователей.

user_roles — роль пользователя в конкретной свадьбе, пользователь может участвовать в редактировании
нескольких свадеб.

wedding — таблица свадеб.

user_edit_rights — Права пользователя в конкретной свадьбе на редактирование того или иного модуля.

user_module_locks — Блокировки пользователем конкретного модуля

user_right_modules — список модулей которые можно редактирвать.

modules — список всех модулей на сайте.

Задача сделать блокировку отдельных страниц для совместного редактирования,
то есть чтобы страницу мог редактировать только один пользователь.

Я решил сделать так:

1. После того как пользователь заходит на страницу выполняется следующий запрос.

SELECT

users.user_id,
modules.module_id,
IF(user_edit_rights.user_id = users.user_id, 1, 0) AS user_can_edit_module,
my.module_id AS user_lock_module_id,
IF(other.user_id != users.user_id,1,0) AS another_user_lock_module

FROM users

INNER JOIN user_roles ON users.user_id = user_roles.user_id

INNER JOIN wedding ON wedding.id = user_roles.wedding_id

LEFT JOIN modules ON 1

LEFT JOIN user_edit_rights ON user_edit_rights.user_id = users.user_id AND user_edit_rights.wedding_id = wedding.id AND user_edit_rights.module_id = modules.module_id

LEFT JOIN user_module_locks AS my ON my.wedding_id = wedding.id AND my.user_id = users.user_id

LEFT JOIN user_module_locks AS other ON other.wedding_id = wedding.id AND other.module_id = modules.module_id

WHERE users.user_id = 3285
AND wedding.id = 72
AND modules.name = 'gifts'


Результат его выполнения выглядит примерно так:

user_id module_id user_can_edit_module user_lock_module_id another_user_lock_module
3285 10 0 2 0


После этого я могу либо добавить запись в таблицу user_module_locks
либо обновить либо удалить ненужные блокировки. То есть дальнейшая
логика приложения зависит именно от результата выполнения данного запроса.

Меня смущают 6 джоинов (в идеале 8-9) и постоянная необходимость выполнения этого запроса
и запроса на манипуляцыю (update, insert, delete) данных в таблице user_module_locks
данные в этой таблице будут постоянно изменятся при переходе пользователя от одной
страницы к другой. EXPLAIN данного запроса показывает что все SIMPLE и скорее всего
одновременного редактирования многими пользователями не будет (онлайн < 10 человек).

Больше всего меня интересует вопрос нормально ли это когда для получения полной
сущьности используется один запрос с большим кол-вом джоинов?

А также примерный алгоритм для организации редактирования данных несколькими
пользователями сразу.

А также нормально ли когда первичный ключ состоит из 3х и более полей?

PHP   MySQL    

272   2   15:01, 19th August, 2020


Cоставлениe sql-запроса, пожалуйста?

Есть таблица, в которой два столбца, один со значениями, другой с их статусами (например: если статус 1, то значение относится к производимой продукции, если статус 2, то значение относится к реализованной продукции). Необходимо, что бы запрос брал значение из первого столбца на основе значения во втором столбце, а на выходе получалось два отдельных столбца с произведенной и реализованной продукцией. Хотелось бы сделать это одним запросом.


Допустим есть запрос:
SELECT value as value1, value as value2, status

необходимо, что бы в зависимости от поля status, данные из поля value попадали либо в value1 либо в value2.

MySQL   SQL    

341   5   22:21, 2nd August, 2020


Версионирование mysql

Вопрос, у нас на одной Базе данных используя одинаковые таблицы крутяться 4 проекта (Разные платформы, API CRM Сайт)

Так вот каждый проект разрабатывает своя группа програмистов и вносить в структуру БД разлинчые правки.
И в момент обновления из SVN нам надо получить какие изменения надо произвести на mysql сервере
Типа SVN для mysql

Посоветуйте в какую сторону смотреть, чего использовать

MySQL    

305   2   23:58, 2nd August, 2020


mysql добавление "-" в список символов

Возникла необходимость при полнотекстовом поиске искать слова с тире (по умолчанию символ "-" является логическим операторым и не считается символом).
Мануал по этому поводу говорит:

Modify a character set file: This requires no recompilation. The true_word_char() macro uses a “character type” table to distinguish letters and numbers from other characters.. You can edit the contents in one of the character set XML files to specify that '-' is a “letter.” Then use the given character set for your FULLTEXT indexes.

Вот только где находится этот character set file гугл не знает:( Кто то сталкивался с подобным?

Спасибо

MySQL    

253   1   18:54, 20th August, 2020


MySQL и триггер на вставку

Вставляю в первую таблицу запись. На ней же висит триггер «после вставки», который добавляет id из первой таблицы во вторую. Как это реализовать?

Если вставляю в триггер запрос: INSERT INTO table2 VALUES (table2.id = LAST_INSERT_ID()); — добавляются «1».
Если запрос: INSERT INTO table2 VALUES (table2.id = new.id); — «0».

MySQL    

303   1   14:17, 25th August, 2020


ruby-mysql2: MySQL server has gone away

Есть даемон написанный на ruby с использованием гема mysql2, занимается тем, что иногда получает сообщение из AMQP и пишет в базу.

При длительном простое MySQL закрывает соединение по таймауту и при попытке выполнить запрос вываливается exception 'MySQL server has gone away'. Гугл выдает решение для ActiveRecord, про mysql2 ничего. В методах класса Mysql2::Client ничего подходящего не нашел, опция :reconnect => true не помогает.

Как проверить соединение перед выполнением запроса и если оно закрыто, то поднять его снова?

Ruby   MySQL    

348   2   14:06, 13th August, 2020


Архитектура БД для фильтров аналог Яндекс Маркета?

Разрабатываем сейчас структуру характеристик товара, чтобы реализовать фильтры как на Яндекс Маркете.

Высоконагрузный проект, поэтому запросы на 5 листов А4 не пойдут.

market.yandex.ru/guru.xml?cmd=-rr=9,0,0,0-v…


Вот смотрите, если отмечаем любой пункт в фильтре, то вся фильтрация перестраивается и убираються те пункты, по которым подбор уже не пройдет
my.jetscreenshot.com/5783/20110219-smd2-59k...

И это все летает


Вопрос, может есть где статьи или человек, который сможет построить архитектуру таблиц с такими фильтрами?

Готов хорошо заплатить

MySQL   Яндекс.Маркет    

458   4   15:16, 12th August, 2020


Поиск mysql like

Задача сравнительно простая, но нагруженный проект.

Есть поле в таблице varchar(255). В таблице много полей и порядка 300 000 строк, но будет расти примерно до 1 000 000.
Сейчас поиск осуществляется так name LIKE '%$name%' OR name '%$translit%'

Поиск подтормаживает.

В связи с этим есть вариант
вынести полностью в отдельную таблицу search поля id, name и использовать все тот же LIKE '%$name%"'

Ускорит ли это поиск?

Ну и второй вариант морочиться с FULLTEXT, но никогда им не пользовался, есть ли смысл? Судя по докам он обходит меньше строк.

Морфология не важна.

Третий вариант видел в форумах. Разбивать на слова и составить таблицу word index и искать по нему.

В какую сторону копать?

MySQL    

358   4   21:06, 1st October, 2020


Объединить несколько результатов MySQL запроса в один

Есть запрос с сервера А
$queryA = mysql_query("SELECT * FROM table");
и запрос с сервера B
$queryB = mysql_query("SELECT * FROM table");
Таблицы идентичны, во всем кроме данных.
Данные сервера А частично (в начале) равны данным с сервера B
Сортировка по дате.

Нужно собрать данные из двух таблиц в один mysql_fetch_array
Возможно ли это?

MySQL    

374   9   15:31, 1st October, 2020


InnoDB или MyISAM с триггерами?

Проектируется база данных (MySQL) по большинству таблиц которой будет вестись поиск.

Было бы неплохо, если бы поиск был полнотекстовым.


Есть статья, как для InnoDB сделать полнотекстовой поиск (с дублированием данных в поисковой таблице).


Либо можно сделать таблицы на MyISAM, а отношения между таблицами организовать при помощи триггеров.


Какие есть плюсы/минусы у этих вариантов в плане скорости и отказоустойчивости?


Насколько оправданы гибридные варианты?


Я понимаю, что MyISAM не поддерживает механизм транзакций, есть ли ещё другие подводные камни?

MySQL    

300   1   22:03, 1st October, 2020


Медленная сортировка по дате в Mysql

имеется медленный запрос (для 30к постов и 30к юзеров выполняется за 0.2с):

SELECT *
FROM `posts`
JOIN `users` ON ( `posts`.`user_id` = `users`.`id` )
GROUP BY `posts`.`id`
ORDER BY `posts`.`date` DESC
LIMIT 10

описывать стуктуру таблиц не буду полностью, т.к. полей много а на суть вопроса это не влияет, опишу основное — date типа datetime, ID типа int

праймери индексы на posts.id и users.id + индекс на posts.user_id

при таком раскладе запрос выполняется за 0.2с

если поставить индекс на date запрос выполняется все равно за 0.2с
если поставить сортировку по posts.id (что в принципе эквивалентно date), запрос выполняется за 0.001с
если убрать JOIN users запрос выполняется за 0.001с

explain:

без индекса на posts.date, время 0.2с

id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE posts index user_id PRIMARY 4 NULL 1000 Using where; Using temporary; Using filesort
1 SIMPLE users eq_ref PRIMARY PRIMARY 3 db_site.posts.user_id 1 Using where


с индексом на posts.date, время 0.2с

id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE posts index user_id date 8 NULL 1000 Using where; Using temporary
1 SIMPLE users eq_ref PRIMARY PRIMARY 3 db_site.posts.user_id 1 Using where


без сортировки по posts.date, время 0.001с

id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE posts index user_id PRIMARY 4 NULL 1000 Using where
1 SIMPLE users eq_ref PRIMARY PRIMARY 3 db_site.posts.user_id 1 Using where


а теперь внимание, вопрос — как сделать сортировку по дате быстрой? и что я делаю не так…

MySQL    

368   3   18:51, 2nd October, 2020


Простой, но медленный запрос в Mysql, что соптимизить

Запрос примитивный — вытащить посты по указанному тегу

SELECT SQL_NO_CACHE posts.id, posts.text, posts.anno, posts.date
FROM `posts`
INNER JOIN `posts_xref_tags` ON posts_xref_tags.post_id = posts.id
WHERE posts_xref_tags.tag_id = 1
ORDER BY posts.date DESC
LIMIT 0,10

в posts primary на id, индекс на date

в posts_xref_tags составной primary на tag_id + post_id и индекс на tag_id

Постов в базе 30000, перекрестных связей 40000… постов имеющих связь с tag_id = 1 4,281

запрос выполняется за 0.2с

explain:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE posts_xref_tags ref PRIMARY,tag_id tag_id 4 const 4244 Using temporary; Using filesort
1 SIMPLE posts eq_ref PRIMARY PRIMARY 4 db_site. posts_xref_tags. post_id 1


UPD: Нашел решение!!!

SELECT SQL_NO_CACHE posts.id, posts.text, posts.anno, posts.create_date
FROM `az_posts`
WHERE id
IN (

SELECT `post_id`
FROM `posts_xref_tags`
WHERE tag_id =1
)
ORDER BY posts.create_date DESC
LIMIT 0, 10

выполняется за 0.002с
всем спасибо!

MySQL    

211   5   21:06, 1st October, 2020


Подсчет потомков узла в MySQL?

Добрый день.


Имеется таблица:

CREATE TABLE sections (<br/>
 id_sections INT(11) NOT NULL AUTO_INCREMENT,<br/>
 name VARCHAR(255) DEFAULT NULL,<br/>
 parent INT(11) UNSIGNED NOT NULL,<br/>
 PRIMARY KEY (id_sections)<br/>
)<br/>



В которой хранится двухуровневое дерево в поле parent храниться id_sections родителя.


Требуется создать запрос для вывода всех корневых каталогов (parent = 0) с количеством вложенных каталогов.


Заранее благодарен.

MySQL    

226   2   21:06, 1st October, 2020


Случайная строка из таблицы

Как вывести случайную строку из таблицы базы данных MySQL.

MySQL    

371   6   00:24, 2nd October, 2020


Debian-сервер умирает, когда MySQL строит индекс?

Есть сервер EQ-4 с Debian Squeeze 2.6.32-5-amd64. Там Software-RAID 1.



На сервере живет MySQL 5.1.49, в которой есть таблица MyISAM на 4 ГБ с индексами на 500 МБ. Индексы убираются в память и выборки из таблицы происходят достаточно быстро (кстати, какими-то настройками удалось добиться ускорения выборки в 10 раз, но я забыл, какими именно и поменял конфиг).



Проблемы начинаются, когда идет добавление данных в таблицу или на чистой таблице строится индекс (я часто удаляю данные и загружаю полностью новые). Disk utilization for /dev/sda — 100%, for /dev/sdb — 50%. Все дисковые операции начинают жутко тормозить. Доступ к другим таблицам (со смешными размерами) происходит очень медленно. Apache и nginx массово создают процессы и потоки. Мониторинг не мониторит (вылетает из-за превышения времени ожидания ответов от каких-то утилит). LA взлетает до 30..50 (в норме он там около 0.5).



Я не возражаю против того, что базе нужен диск. Но что можно сделать, чтобы при активном юзании диска одним приложением, другие приложения не умирали так быстро? Можно ли как-то указывать приоритеты?



FreeBSD не предлагать :-)

Я бы рад, но не справлюсь с установкой и настройкой.





UPDATE:

По результатам небольшого тестирования перешел на другой планировщик ввода-вывода. Был cfq (!!!), стал anticipatory. Сейчас тестирую в работе.





UPDATE-2:

Тестировал разные планировщики в реальных ситуациях. Выбор планировщика и правильная настройка их параметров очень сильно влияет на производительность и отзывчивость сервера. Сейчас остановился на deadline, но однозначную рекомендацию тут давать нельзя: выбор зависит от приоритетных задач вашего сервера. Постараюсь разобраться в вопросе и написать более подробно.

MySQL   Debian    

387   4   10:06, 1st October, 2020


Экспорт MySQL с пользователями?

Встала задача перехать на другой VDS. На обоих машинах стоит ISPManager, но он отказывается делать импорт пользователя — постоянно ошибки. Решил делать в ручную, но очень не хочется создавать заново пользователей MySQL, потом их прописывать в скриптах и делать прочие сопутствующие вещи.


Можно ли как то сделать экспорт всех баз вместе с пользователями, сохранив их пароли?

MySQL   ISPmanager   Перенос   данных    

344   3   21:06, 1st October, 2020


Организация системы ревизий в базе данных?

Дано:

  1. Приложение, написанное на PHP с MySQL (Yii Framework);
  2. Несколько типов контента, например setting и node. Хранится в разных таблицах со своим набором полей;
  3. Около 10к пользователей приложения с очень частым обновлением одного из типов контента, допустим node. Во время редактирования node может обновляться до нескольких раз в секунду (с созданием новых ревизий). В тоже время, некоторые node могут не обновляться месяцами, а некоторые каждый день по нескольку раз.


Необходимо сделать что-то вроде системы контроля версий, чтобы синхронизировать несколько клиентских приложений с сервером. Хороший пример: расширение для браузеров Xmarks.

Вопрос заключается в том, как хранить ревизии (и изменения в них) в базе MySQL?



Мне на ум пришло такое решение:



Одна таблица, которая хранит все изменения контента. Выглядит это примерно так:


rev action type id args
1 insert node 1421 { text: 'custom node', created: 1236124121 }
2 update node 1421 { text: 'asd', modified: 1237123134 }
3 update node 1421 { title: 'example node', modified: 1238123814 }
3 insert node 1422 { field: new_value }
3 update setting 12 { email: 'Oo@mail.ru' }
4 update node 1422 { field: new_new_value }
4 update setting 12 { email: 'mail@mail.ru' }
5 delete node 1421 {}


  • Rev – номер ревизии пользователя. В рамках одной ревизии может быть несколько записей.
  • Action – тип изменений. insert|update|delete.
  • Type – тип контента. Например, node или setting.
  • Id – идентификатор контента.
  • Args – объект json с логом изменений.


Не знаю, насколько правильно хранить ревизии таким образом, в одной таблице. Допустим, у каждого юзера будет по 5к ревизий – это уже 50 млн. записей! Как с этим будет справляться MySQL, если учесть, что идет постоянная запись в таблицу?



Как можно решить данную проблему наиболее рационально? Готов рассмотреть варианты с использованием других БД, в т.ч. NoSQL.



Большое спасибо за помощь.



UPD:

Есть вариант отказаться от возможности восстановить старые ревизии. Таким образом, можно исключить update записи и хранить только последнюю ревизию в таблице контента.

Тогда таблица сократиться в 10 раз, и в ней будет около 5 млн. записей. Насколько это упрощает задачу? Как поведет себя MySQL в таком случае?

MySQL   Yii    

347   1   21:06, 1st October, 2020


Mysql-ферма

Если говорить про сферический mysql в вакууме, то какой вариант абстрактно лучше: три четырехъядерных Core2Quad сервера по 6 Гб памяти каждый (с репликацией master-slave) или один восьмиядерный Xeon c 12 Гб памяти? Или например так: три по 8 Гб или один 24 Гб? Приоритет системы в основном на чтение.

MySQL    

342   2   12:44, 2nd October, 2020


Импорт массива данных в таблицу mySQL?

Доброе время суток.


Есть задача отпарсить TXT и обновить данные в таблице используя результат парсинга.

Первая подзадача решается без проблем, а вот вторая задача решается, но решение не совсем корректное на мой взгляд.


TXT:

001-03-0027,4000.50,5<br/>
001-03-0031,8000.50,6<br/>
001-03-0028,12000.50,7<br/>
001-03-0033,16000.50,8<br/>
...<br/>



Таблица:
CREATE TABLE properties(<br/>
 ...<br/>
 id_1c VARCHAR(255) DEFAULT NULL,<br/>
 price FLOAT DEFAULT 0,<br/>
 count INT(11) DEFAULT 0,<br/>
)<br/>



Обрабатывая файл построчно я получаю 3 переменные $array['id_1c'], $array['price'], $array['count']. Которые запихиваю в запрос:

<br/>
'UPDATE properties SET price='.$array['price'].', count='.$array['count'].' WHERE id_1c = '.$array['id_1c'];<br/>



В итоге получаю количество запросов прямо пропорциональное количеству строк в файле, а их там 5000 шт.

Возможно ли как то оптимизировать данный процесс?

С учетом того, что требуется проводить мониторинг успешности обновления данных:

ID 001-03-0027: обновлен успешно<br/>
ID 001-03-0031: не найден в базе<br/>
ID 001-03-002: не найден в базе<br/>
ID 001-03-0033: обновлен успешно<br/>



Спасибо.

MySQL   Перенос   данных    

333   3   13:36, 1st October, 2020


Анализ графиков загрузки и оптимизация web-сервера?

Добрый вечер, хабр. Прошу у вас помощи в анализе графиков загрузки сервера, и его оптимизации, думаю я что-то упускаю из вида, или просто не понимаю.

Предыстория: достался в наследство один сайт, расположенный на достаточно мощной vds(8 ядер, 16Gb RAM, Ubuntu Server), сделанный на joomla с несколькими компонентами, один из которых — активно используемый форум. Всё это работало на чистом Apache+MySQL(подавляющее большинство таблиц в MyISAM). Вечером, когда на сайт приходит большое количество человек, он периодически перестаёт отвечать на запросы, т.е. по ssh зайти можно нормально, и работать в консоли, но сам сайт, если и открывается, то очень медленно. В такие моменты LA был около 14-16.

Первым делом я настроил фронтэнд(nginx), для отдачи статики и проксирования остального на апач, и поставил memcached, в котором джумла начала хранить кэш. После этого LA в пиках стал около 4. Какое то время сайт работал нормально, но через несколько дней снова начались проблемы. (LA 8-9+)

В этот раз я решил копать глубже, и, для начала, поставил munin для наблюдения за системой. Затем я установил APC, настроил размер кэша опкода так, чтобы он не переполнялся, попробовал использовать его как хранилище кэша джумлы, но испугался появившейся 100%ной фрагментации, и вернул кэш в memcached. Также я прогнал БД tuningprimer'ом, воспользовался рекомендациями, сделал больше table_cache и open_files_limit, добился того, чтобы кэша хватало. После всего этого максимальный замеченный сегодня LA был равен 5, но пользователи жаловались, что некоторое время сайт был недоступен.

В связи с этим у меня вопрос к хабрасообществу: что ещё можно сделать в этой ситуации и в какую сторону смотреть? Насколько я могу понять, проблему создаёт большое количество запросов к БД, многие даже в slow-log попадают, но что-то сделать с запросами можно только сильно залезая в код компонентов, что хочется делать только в крайнем случае. Какие графики и конфиги показать для лучшего понимания ситуации?

UPD: В планах — попробовать избавиться от apache, оставить только nginx + php-fpm. Нормально ли будет работать APC с такой связкой, и поможет ли мне вообще она?

MySQL   Nginx   Apache   Ubuntu    

376   7   19:05, 25th September, 2020