Mysql
 sql >> база данни >  >> RDS >> Mysql

По-бързо ли е да се преобразува в varchar или varchar към int, когато се сравнява в MySQL?

Това зависи от индексите. Ако и двете колони имат зададени индекси, трябва да прехвърляте към int , защото трябва да сравни само 4 байта. Ако обаче само varchar колоната е индексирана, прехвърля се към varchar .

Накрая трябва да имате заявката си explain ed, за да видите какъв индекс ще се използва и съответно прехвърляне.

Ако не е зададен индекс, прехвърляне към int е по-добрият подход като цяло. Въпреки това, ако няма набор от индекси, това всъщност няма значение, ще спестите много повече време чрез индексиране, отколкото като изберете правилния начин за предаване. Само дето отново масите са малки. Тогава също няма значение.

Всъщност трябва да вземем предвид не само разходите за сравнение, но и за кастинг:Прехвърляне на int към varchar е малко по-бърз от анализа на varchar към int . Въпреки това, сравняването на varchar, който има поне 4 знака, ще направи това предимство безполезно. Ако вашите стойности обикновено са по-високи от 999, прехвърляйте към int ще бъде по-бързо. Но това вече зависи от вашата операционна система, архитектурата, набора от инструкции, използван от вашия двоичен файл mysql и така нататък. Единственият начин да получите наистина надежден отговор е:Сравнете тази ситуация на целевата машина.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конвертирате epoch в mySQL timestamp в JAVA

  2. пребройте 10-те най-често срещани стойности в колона в mysql

  3. Кое е следващото най-добро нещо след VARCHAR(255)

  4. Как да намеря втората по големина заплата от таблицата на служителите?

  5. Помощ при хващане (ВЪТРЕШНО?) ПРИСЪЕДИНЕНИЕ