2015-08-27 2 views
0

Я знаю, что делать что-то вроде этого будет считаться плохой практикой, но если бы нужно было создать таблицу с полями, как from, to, desc и сделал:MySQL. Может ли использование зарезервированных слов в качестве имен таблиц уменьшать производительность?

SELECT * 

или

с массивным данных/результат set будет ли это иметь какую-либо разницу в производительности, в отличие от использования таких имен, как sent_from, sent_to, description?

+0

Кто-то разместил ссылку на документы CakePHP, в частности: «Следует отметить, что это снижает производительность, поскольку каждый запрос необходимо пройти и обработать до его выполнения». Я думаю, что это из самого CakePHP, что эта проблема возникает. Тем не менее, не 100%. –

+0

Если это вопрос, попробуйте сравнить результаты двух таких запросов: SELECT 'from',' to', 'desc' и SELECT c1, c2, c3 ... Просто создайте похожие таблицы. – Devart

ответ

2

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

+0

Спасибо за ответ, я не думаю, что это снижает производительность, но я не уверен, и надеялся, что кто-то там будет твердо говорить, что это не так! :) –

+0

@IndigoIdentity: - Чтобы подтвердить это твердо, вам нужно создать тестовый пример и запустить его, может быть 1000 раз и увидеть разницу. Я сделал то же самое с именами столбцов несколько лет назад и не нашел разницы (предельная разница в несколько наносекунд, которые я рассматривал из-за длинных имен строк, которые я взял). Вы также можете сделать подобное, и я уверен, вы не найдете никакой разницы. –

+0

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

0

Использование ключевых слов, таких как 'from', 'to', не приведет к снижению производительности, скорее, будут случаи, когда другие будут запутаны, в то время как есть необходимость в обновлении данных. Некоторые инструменты, которые имеют функции автозаполнения, ключевое слово, а не поле. Лучше использовать «table_name.from», а использовать «from».

Смежные вопросы